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.
Madhura Jayaratne a écrit :
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 Madhura, this is a good baseline for further improvements.
Madhura Jayaratne a écrit :
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.
Madhura, when you browse this table in 4.4 with the profiling overhead, you get an average of 24.5 seconds. What do you get when doing the same, without profiling overhead?
On Mon, May 18, 2015 at 7:04 PM, Marc Delisle marc@infomarc.info wrote:
Madhura Jayaratne a écrit :
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.
Madhura, when you browse this table in 4.4 with the profiling overhead, you get an average of 24.5 seconds. What do you get when doing the same, without profiling overhead?
For all the above I used sakila database and film table for the table level.
Without profiling overhead it takes 1155.5 ms.
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.
These are great stats. My concern would be for row edit/insert and table browse as those are most important operations for phpMyAdmin.
-- Thanks and Regards,
Madhura Jayaratne
On Mon, May 18, 2015 at 7:50 PM, Chirayu Chiripal < chirayu.chiripal@gmail.com> wrote:
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.
These are great stats. My concern would be for row edit/insert and table browse as those are most important operations for phpMyAdmin.
Yes, I will go through the profiling details to see which sub routines takes long time for these operations.
On 5/18/15 8:40 AM, Madhura Jayaratne 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 for the work, this is quite interesting.
-- Thanks and Regards,
Madhura Jayaratne
One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
Phpmyadmin-devel mailing list Phpmyadmin-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/phpmyadmin-devel
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/80ad726a8471441abc5eeb573b69... [2] https://github.com/phpmyadmin/phpmyadmin/commit/739b142580d7fa6bf8e5ca70f45b... [3] https://github.com/phpmyadmin/phpmyadmin/commit/758ec7b5ae7f9669f30c4de2f658...
Le 2015-06-10 22:49, Madhura Jayaratne a écrit :
(...)
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.
Nisarg, can you have a look to see if performance can be improved here?