well, i can say that it had one begin/merge/end under wiki.d, and one begin/merge/end under wikilib.d, for each item in the list (so 6 printouts for each item in each list).<br><br>However, I implemented all the fixes you suggested above, and virtually all of those PageStore::ls calls went away.  Now, that same page I send before (although it was shortened) now looks like this:  <br>
<br> 0: 00.00 MarkupToHTML begin<br> 1: 00.04 FPLTemplate: Chain begin<br> 2: 00.04 FPLTemplate: FPLTemplateLoad<br> 3: 00.04 FPLTemplate: FPLTemplateDefaults<br> 4: 00.04 FPLTemplate: FPLTemplatePageList<br> 5: 00.04 MakePageList pre<br>
 6: 00.04 PageListCache begin load key=1783098ec26df5f43fd5bcac95c061aa<br> 7: 00.04 PageListCache end load<br> 8: 00.04 PageListSources begin<br> 9: 00.04 PageListSources end count=10<br>10: 00.04 PageListSort pre ret=6 order=-MemoryBandwidth<br>
11: 00.04 MakePageList items count=10, filters=PageListSort<br>12: 00.05 MakePageList post count=10, readc=10<br>13: 00.05 PageListSort begin<br>14: 00.05 PageListSort sort<br>15: 00.07 PageListSort end<br>16: 00.07 MakePageList end<br>
17: 00.07 FPLTemplate: FPLTemplateSliceList<br>18: 00.07 FPLTemplate: FPLTemplateFormat<br>19: 00.08 MarkupToHTML begin<br>20: 00.34 MarkupToHTML end<br>21: 00.34 FPLTemplate: Chain end<br>22: 00.36 FPLTemplate: Chain begin<br>
23: 00.36 FPLTemplate: FPLTemplateLoad<br>24: 00.36 FPLTemplate: FPLTemplateDefaults<br>25: 00.36 FPLTemplate: FPLTemplatePageList<br>26: 00.36 MakePageList pre<br>27: 00.36 PageListCache begin load key=729968a4400968ea344e325d72bb64a6<br>
28: 00.36 PageListCache end load<br>29: 00.36 PageListSources begin<br>30: 00.36 PageListSources end count=21<br>31: 00.36 PageListSort pre ret=6 order=-blpf<br>32: 00.36 MakePageList items count=21, filters=PageListSort<br>
33: 00.37 MakePageList post count=21, readc=21<br>34: 00.37 PageListSort begin<br>35: 00.37 PageListSort sort<br>36: 00.50 PageListSort end<br>37: 00.50 MakePageList end<br>38: 00.50 FPLTemplate: FPLTemplateSliceList<br>39: 00.50 FPLTemplate: FPLTemplateFormat<br>
40: 00.53 MarkupToHTML begin<br>41: 01.46 MarkupToHTML end<br>42: 01.46 FPLTemplate: Chain end<br>43: 01.46 FPLTemplate: Chain begin<br>44: 01.46 FPLTemplate: FPLTemplateLoad<br>45: 01.47 FPLTemplate: FPLTemplateDefaults<br>
46: 01.47 FPLTemplate: FPLTemplatePageList<br>47: 01.47 MakePageList pre<br>48: 01.47 PageListCache begin load key=4f226cae0703642f71bbc1f4b24f50a0<br>49: 01.47 PageListCache end load<br>50: 01.47 PageListSources begin<br>
51: 01.47 PageListSources end count=19<br>52: 01.47 PageListSort pre ret=6 order=-blpf<br>53: 01.47 MakePageList items count=19, filters=PageListSort<br>54: 01.48 MakePageList post count=19, readc=19<br>55: 01.48 PageListSort begin<br>
56: 01.48 PageListSort sort<br>57: 01.52 PageListSort end<br>58: 01.52 MakePageList end<br>59: 01.52 FPLTemplate: FPLTemplateSliceList<br>60: 01.52 FPLTemplate: FPLTemplateFormat<br>61: 01.53 MarkupToHTML begin<br>62: 02.01 MarkupToHTML end<br>
63: 02.01 FPLTemplate: Chain end<br>64: 02.02 FPLTemplate: Chain begin<br>65: 02.02 FPLTemplate: FPLTemplateLoad<br>66: 02.02 FPLTemplate: FPLTemplateDefaults<br>67: 02.02 FPLTemplate: FPLTemplatePageList<br>68: 02.02 MakePageList pre<br>
69: 02.02 PageListCache begin load key=d093679bf99dbfd97c5f8b6ad7c13667<br>70: 02.02 PageListCache end load<br>71: 02.02 PageListSources begin<br>72: 02.02 PageListSources end count=21<br>73: 02.02 PageListSort pre ret=6 order=-blpf<br>
74: 02.02 MakePageList items count=21, filters=PageListSort<br>75: 02.03 MakePageList post count=21, readc=21<br>76: 02.03 PageListSort begin<br>77: 02.03 PageListSort sort<br>78: 02.08 PageListSort end<br>79: 02.08 MakePageList end<br>
80: 02.08 FPLTemplate: FPLTemplateSliceList<br>81: 02.08 FPLTemplate: FPLTemplateFormat<br>82: 02.10 MarkupToHTML begin<br>83: 02.63 MarkupToHTML end<br>84: 02.63 FPLTemplate: Chain end<br>85: 02.64 MarkupToHTML end<br>86: 02.65 MarkupToHTML begin<br>
87: 02.81 MarkupToHTML end<br>88: 02.81 MarkupToHTML begin<br>89: 02.84 MarkupToHTML end<br>90: 02.86 now<br><br><br>That's not very fast, but not bad for a page with 4 pagelists on it, given what I now know about the expense of pagelists.  Another change I made was moving the $WorkDir to a directory local to the machine (and not NFS mounted).  That may have helped speed up pages also, pagelists or not.  Not sure.  All in all, your advice got me a significant improvement in speed.  I'm happy for now, but if we wanted to optimize further, it looks like most of my page time is all in the "MarkupToHTML" calls, as this seems to be where almost all the big chunks of time is spent.<br>
<br>Thanks so much for the help!  If you have any ideas to get the time further reduced, let me know, but I'm mostly satisfied at this point.<br><br>FG<br><br>FG<br><br><br>On Thu, Jan 5, 2012 at 2:34 PM, Patrick R. Michaud <<a href="mailto:pmichaud@pobox.com">pmichaud@pobox.com</a>> wrote:<br>
><br>> On Thu, Jan 05, 2012 at 11:51:24AM -0600, Frank Graffagnino wrote:<br>> > 4. Is there anything I can do to get rid of all those PageStore::ls calls?<br>> > [...]<br>> > 17: 00.08 FPLTemplate: FPLTemplateSliceList<br>
> > 18: 00.08 FPLTemplate: FPLTemplateFormat<br>> > 19: 00.10 MarkupToHTML begin<br>> > 20: 00.15 PageStore::ls begin wiki.d/{$FullName}<br>> > 21: 00.18 PageStore::ls merge wiki.d/{$FullName}<br>> > 22: 00.18 PageStore::ls end wiki.d/{$FullName}<br>
> > 23: 00.18 PageStore::ls begin $FarmD/wikilib.d/{$FullName}<br>> > 24: 00.18 PageStore::ls merge $FarmD/wikilib.d/{$FullName}<br>> > 25: 00.18 PageStore::ls end $FarmD/wikilib.d/{$FullName}<br>> > 26: 00.18 PageStore::ls begin wiki.d/{$FullName}<br>
> > 27: 00.20 PageStore::ls merge wiki.d/{$FullName}<br>> > 28: 00.20 PageStore::ls end wiki.d/{$FullName}<br>> > 29: 00.20 PageStore::ls begin $FarmD/wikilib.d/{$FullName}<br>> > 30: 00.20 PageStore::ls merge $FarmD/wikilib.d/{$FullName}<br>
> > 31: 00.20 PageStore::ls end $FarmD/wikilib.d/{$FullName}<br>> > <... repeats a ton of times. Edited for brevity ... ><br>> > 509: 03.82 MarkupToHTML end<br>><br>> How many times does it repeat?  In looking at the above, it appears<br>
> to me that the total time needed to perform a single PageStore::ls<br>> sequence is only 0.05 seconds (0.20 - 0.15).  It would be good to<br>> know the timestamp for the *last* PageStore::ls that occurs, as that<br>
> gives an upper bound on the amount of time that would be saved by<br>> eliminating PageStore::ls calls.<br>><br>> Pm