On Mon, May 18, 2015 at 6:10 PM, Madhura Jayaratne <madhura.cj@gmail.com> wrote:
Hi devs,

As discussed during the last team meeting, I did some profiling to evaluate the performance of 4.4 series against 3.5 series. I used xdebug for profiling and for each of the pages evaluated, I averaged among three reading to overcome any errors.

The values are in milliseconds and contains profiling overhead as well. However, this should not be a problem to compare between two versions.

Page     3.5 branch       4.4 branch              4.4 / 3.5
Table browse 5230.67 24548.67 4.69
Table structure 2974.67 8060.67 2.71
Table SQL 760.33 1770.33 2.33
Table operations 2564.33 7626.33 2.97
Row edit 2012 10980.67 5.46
Row insert 2387.67 11553 4.84
Database structure 6280.33 5076.33 0.81
Database SQL 1511.67 1570 1.04
Database operations 3115.33 2750.67 0.88
Server databases 2108 3068.67 1.46
Navigation refresh 626 4092.33 6.54

While I got mixed results where for certain pages 3.5 was faster and for others 4.4 was faster, for most of the pages 3.5 was much faster.

I am attaching the results in csv format as well as output files from profiling. With KCacheGrind or WinCacheGrind you should be able to further analyze the profiling results.

--
Thanks and Regards,

Madhura Jayaratne


During the last week, I attended to some performance improvements, starting with table browse and table insert/edit operations since they showed more deterioration compared to 3.5 version.

In table browse, I was able to eliminate 25 calls to PMA_Util::getUniqueCondition() with [1] and [2], saving about 3 seconds. In table insert/edit, I was able to eliminate the call to PMA_Table::analyzeStructure() with [3] saving about 4 seconds. 

However, I also noted that newly added 'Page related settings' feature adding about 3 seconds to each of these pages, somewhat offsetting these gains. Anyway, I find this feature quite useful and I feel that these additions are acceptable. 

P.S. All the times are with profiling overhead.

[1] https://github.com/phpmyadmin/phpmyadmin/commit/80ad726a8471441abc5eeb573b69f2a150dd1a07
[2] https://github.com/phpmyadmin/phpmyadmin/commit/739b142580d7fa6bf8e5ca70f45baced6e22aeeb
[3] https://github.com/phpmyadmin/phpmyadmin/commit/758ec7b5ae7f9669f30c4de2f658a7c751af92f6

--
Thanks and Regards,

Madhura Jayaratne