<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I had already been considering to replace menu.xml with something else, probably with a native array (so that we can store all the different attributes that are stored in the menu file) and then while keeping the API interface, replace the code inside. But I obviously have not had the time...<div><br class="webkit-block-placeholder"></div><div>I would drop the XML and consider a multidimensional array.</div><div><br class="webkit-block-placeholder"></div><div>About the locales, what's the performance penalty of using array_merge? Is array_merge the slow part or is it something else?<br><div><br><div><div>On Feb 1, 2008, at 8:20 PM, Mark Wu wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"> <div> <div><font face="新細明體" size="2"><span class="364065717-01022008">After several testing, I think I know why our plugin is so slow...</span></font></div> <div><font face="新細明體" size="2"><span class="364065717-01022008"></span></font>&nbsp;</div> <div><font face="新細明體" size="2"><span class="364065717-01022008">The problem is plugin menu &amp; locales :(</span></font></div> <div><font face="新細明體" size="2"><span class="364065717-01022008"></span></font>&nbsp;</div> <div><font face="新細明體" size="2"><span class="364065717-01022008">In our plugin framework, we can add menu on the fly, it is good. But it use XML_Tree(from pear), and it always lookup the specific node and add the plugin&nbsp;menu as its child in each request. So, if we have 1 plugin, and 2 menu entries, it will search the menu tree twice. If we have 14 plugins and each plugin has 2 menu entries, it will search 28 times ....</span></font></div> <div><font face="新細明體" size="2"><span class="364065717-01022008"></span></font>&nbsp;</div> <div><font face="新細明體" size="2"><span class="364065717-01022008">The second problem is our plugin locales. Iit use array_merge() to merge the plugin locales into core locales.... </span></font></div> <div><font face="新細明體" size="2"><span class="364065717-01022008"></span></font>&nbsp;</div> <div><font face="新細明體" size="2"><span class="364065717-01022008">For 1st problem, I have no idea how to solve it, maybe we can change it to simplexml (native xml support) in php5 to see it increse any performance or not.</span></font></div> <div><font face="新細明體" size="2"><span class="364065717-01022008"></span></font>&nbsp;</div> <div><font face="新細明體" size="2"><span class="364065717-01022008">For 2nd problem, maybe we can use include() only, </span></font></div> <div><font face="新細明體" size="2"><span class="364065717-01022008"></span></font>&nbsp;</div> <div><font face="新細明體" size="2"><span class="364065717-01022008">For production server, I think add all menu to menu.xml and all locales to core locale file is very helpful......</span></font></div> <div><font face="新細明體" size="2"><span class="364065717-01022008"></span></font>&nbsp;</div> <div><font face="新細明體" size="2"><span class="364065717-01022008">====</span></font></div> <div><font face="新細明體" size="2"><span class="364065717-01022008"></span></font>&nbsp;</div> <div><font face="新細明體" size="2"><span class="364065717-01022008">Here is the test result when I open editArticleCategories page: (I test it under&nbsp; php5, apache 2.2 &amp; mysql5 on a slow pentium M 1.8GHZ with 2G ram with window xp)</span></font></div> <div><font face="新細明體" size="2"><span class="364065717-01022008"></span></font>&nbsp;</div> <div><font face="新細明體" size="2"><span class="364065717-01022008">1. LifeType core + 14 plugins (8 with xml menu entries setting) : 1000 ms</span></font></div> <div><font face="新細明體" size="2"><span class="364065717-01022008">2. (1) and remove all locale files : 900ms</span></font></div> <div><font face="新細明體" size="2"><span class="364065717-01022008">3. (1) and remove all plugins: 550ms</span></font></div> <div><font face="新細明體" size="2"><span class="364065717-01022008"></span></font>&nbsp;</div> <div><font face="新細明體" size="2"><span class="364065717-01022008">Just for your reference.</span></font></div> <div><font face="新細明體" size="2"><span class="364065717-01022008"></span></font>&nbsp;</div> <div><font face="新細明體" size="2"><span class="364065717-01022008">Mark</span></font></div> <div><font face="新細明體" size="2"><span class="364065717-01022008"></span></font>&nbsp;</div> <div><font face="新細明體" size="2"><span class="364065717-01022008"></span></font>&nbsp;</div> <div><font face="新細明體" size="2"><span class="364065717-01022008"></span></font>&nbsp;</div></div> _______________________________________________<br>pLog-svn mailing list<br><a href="mailto:pLog-svn@devel.lifetype.net">pLog-svn@devel.lifetype.net</a><br>http://limedaley.com/mailman/listinfo/plog-svn</blockquote></div><br></div></div></body></html>