<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.16587" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; 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=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=364065717-01022008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN class=364065717-01022008>The problem is plugin 
menu &amp; locales :(</SPAN></FONT></DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=364065717-01022008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; 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=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=364065717-01022008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; 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=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=364065717-01022008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; 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=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=364065717-01022008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN class=364065717-01022008>For 2nd problem, 
maybe we can use include() only, </SPAN></FONT></DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=364065717-01022008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; 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=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=364065717-01022008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=364065717-01022008>====</SPAN></FONT></DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=364065717-01022008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; 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=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=364065717-01022008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; 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=&#26032;&#32048;&#26126;&#39636; size=2><SPAN class=364065717-01022008>2. (1) and remove all 
locale files : 900ms</SPAN></FONT></DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN class=364065717-01022008>3. (1) and remove all 
plugins: 550ms</SPAN></FONT></DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=364065717-01022008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN class=364065717-01022008>Just for your 
reference.</SPAN></FONT></DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=364065717-01022008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=364065717-01022008>Mark</SPAN></FONT></DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=364065717-01022008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=364065717-01022008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=364065717-01022008></SPAN></FONT>&nbsp;</DIV></BODY></HTML>