<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 18, 2015 at 6:10 PM, Madhura Jayaratne <span dir="ltr"><<a href="mailto:madhura.cj@gmail.com" target="_blank">madhura.cj@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr">Hi devs,<div><br></div><div>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.</div><div><br></div><div>The values are in milliseconds and contains profiling overhead as well. However, this should not be a problem to compare between two versions.</div><div><br></div><div><table border="0" cellpadding="0" cellspacing="0" width="412" style="border-collapse:collapse;width:310pt">
 <colgroup><col width="155" style="width:116pt">
 <col width="79" style="width:60pt">
 <col width="83" style="width:63pt">
 <col width="95" style="width:71pt">
 </colgroup><tbody><tr height="19" style="height:14.5pt">
  <td height="19" width="155" style="height:14.5pt;width:116pt">Page</td>
  <td width="79" style="border-left-style:none;width:60pt">    3.5 branch</td>
  <td width="83" style="border-left-style:none;width:63pt">      4.4 branch</td>
  <td width="95" style="border-left-style:none;width:71pt">             4.4 / 3.5</td>
 </tr>
 <tr height="19" style="height:14.5pt">
  <td height="19" style="height:14.5pt;border-top-style:none">Table browse</td>
  <td align="right" style="border-top-style:none;border-left-style:none">5230.67</td>
  <td align="right" style="border-top-style:none;border-left-style:none">24548.67</td>
  <td align="right" style="border-top-style:none;border-left-style:none">4.69</td>
 </tr>
 <tr height="19" style="height:14.5pt">
  <td height="19" style="height:14.5pt;border-top-style:none">Table
  structure</td>
  <td align="right" style="border-top-style:none;border-left-style:none">2974.67</td>
  <td align="right" style="border-top-style:none;border-left-style:none">8060.67</td>
  <td align="right" style="border-top-style:none;border-left-style:none">2.71</td>
 </tr>
 <tr height="19" style="height:14.5pt">
  <td height="19" style="height:14.5pt;border-top-style:none">Table SQL</td>
  <td align="right" style="border-top-style:none;border-left-style:none">760.33</td>
  <td align="right" style="border-top-style:none;border-left-style:none">1770.33</td>
  <td align="right" style="border-top-style:none;border-left-style:none">2.33</td>
 </tr>
 <tr height="19" style="height:14.5pt">
  <td height="19" style="height:14.5pt;border-top-style:none">Table
  operations</td>
  <td align="right" style="border-top-style:none;border-left-style:none">2564.33</td>
  <td align="right" style="border-top-style:none;border-left-style:none">7626.33</td>
  <td align="right" style="border-top-style:none;border-left-style:none">2.97</td>
 </tr>
 <tr height="19" style="height:14.5pt">
  <td height="19" style="height:14.5pt;border-top-style:none">Row edit</td>
  <td align="right" style="border-top-style:none;border-left-style:none">2012</td>
  <td align="right" style="border-top-style:none;border-left-style:none">10980.67</td>
  <td align="right" style="border-top-style:none;border-left-style:none">5.46</td>
 </tr>
 <tr height="19" style="height:14.5pt">
  <td height="19" style="height:14.5pt;border-top-style:none">Row insert</td>
  <td align="right" style="border-top-style:none;border-left-style:none">2387.67</td>
  <td align="right" style="border-top-style:none;border-left-style:none">11553</td>
  <td align="right" style="border-top-style:none;border-left-style:none">4.84</td>
 </tr>
 <tr height="19" style="height:14.5pt">
  <td height="19" style="height:14.5pt;border-top-style:none">Database
  structure</td>
  <td align="right" style="border-top-style:none;border-left-style:none">6280.33</td>
  <td align="right" style="border-top-style:none;border-left-style:none">5076.33</td>
  <td align="right" style="border-top-style:none;border-left-style:none">0.81</td>
 </tr>
 <tr height="19" style="height:14.5pt">
  <td height="19" style="height:14.5pt;border-top-style:none">Database SQL</td>
  <td align="right" style="border-top-style:none;border-left-style:none">1511.67</td>
  <td align="right" style="border-top-style:none;border-left-style:none">1570</td>
  <td align="right" style="border-top-style:none;border-left-style:none">1.04</td>
 </tr>
 <tr height="19" style="height:14.5pt">
  <td height="19" style="height:14.5pt;border-top-style:none">Database
  operations</td>
  <td align="right" style="border-top-style:none;border-left-style:none">3115.33</td>
  <td align="right" style="border-top-style:none;border-left-style:none">2750.67</td>
  <td align="right" style="border-top-style:none;border-left-style:none">0.88</td>
 </tr>
 <tr height="19" style="height:14.5pt">
  <td height="19" style="height:14.5pt;border-top-style:none">Server
  databases</td>
  <td align="right" style="border-top-style:none;border-left-style:none">2108</td>
  <td align="right" style="border-top-style:none;border-left-style:none">3068.67</td>
  <td align="right" style="border-top-style:none;border-left-style:none">1.46</td>
 </tr>
 <tr height="19" style="height:14.5pt">
  <td height="19" style="height:14.5pt;border-top-style:none">Navigation
  refresh</td>
  <td align="right" style="border-top-style:none;border-left-style:none">626</td>
  <td align="right" style="border-top-style:none;border-left-style:none">4092.33</td>
  <td align="right" style="border-top-style:none;border-left-style:none">6.54</td>
 </tr></tbody></table><br>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.</div><div><br></div><div>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.</div><span class=""><font color="#888888"><span><font color="#888888"><div><div><br></div></div></font></span></font></span></div></div><span class=""><font color="#888888">-- <br><div>Thanks and Regards,<div><br></div><div>Madhura Jayaratne<br><div><br></div></div></div>
</font></span></div>
</blockquote></div><br>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.</div><div class="gmail_extra"><br></div><div class="gmail_extra">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. </div><div class="gmail_extra"><br></div><div class="gmail_extra">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. </div><div class="gmail_extra"><br></div><div class="gmail_extra">P.S. All the times are with profiling overhead.</div><div class="gmail_extra"><br></div><div class="gmail_extra">[1] <a href="https://github.com/phpmyadmin/phpmyadmin/commit/80ad726a8471441abc5eeb573b69f2a150dd1a07">https://github.com/phpmyadmin/phpmyadmin/commit/80ad726a8471441abc5eeb573b69f2a150dd1a07</a></div><div class="gmail_extra">[2] <a href="https://github.com/phpmyadmin/phpmyadmin/commit/739b142580d7fa6bf8e5ca70f45baced6e22aeeb">https://github.com/phpmyadmin/phpmyadmin/commit/739b142580d7fa6bf8e5ca70f45baced6e22aeeb</a></div><div class="gmail_extra">[3] <a href="https://github.com/phpmyadmin/phpmyadmin/commit/758ec7b5ae7f9669f30c4de2f658a7c751af92f6">https://github.com/phpmyadmin/phpmyadmin/commit/758ec7b5ae7f9669f30c4de2f658a7c751af92f6</a><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Thanks and Regards,<div><br></div><div>Madhura Jayaratne<br><div><br></div></div></div>
</div></div>