![]() |
Super Speedy UserCP
1 Attachment(s)
TIME TO INSTALL: 10 seconds (requires editing of one file in one place)
This simple code modification increases my usercp.php loading speed by 6x. I think it will be most useful in cases where there are many subscribed forums. It is listed as a modification for version 3.8.3 (which I am currently working with), but this mod works as far back as 3.0.1 (the 'find' text might be slightly different, but the function name and the text you replace is the same). EDIT: Tested up to 3.8.4. It works because the php function is_array() is excruciatingly slow, and an empty array gives the same return value as an empty variable. This code would likely break if someone introduced a location in the code where the $lastpostarray variable was set to something (i.e. not nothing) that was not an array. There are lots of these checks in the vBulletin code. It's likely that further speed increases could be achieved by changing more of them -- just remember that there is an unlikely circumstance (see previous paragraph) where it would cause problems. If you find other locations with significant effects, please post them in a reply! ##### IN FILE functions_forumlist.php ##### FIND function construct_forum_bit($parentid, $depth = 0, $subsonly = 0) { global $vbulletin, $stylevar, $vbphrase, $show; global $imodcache, $lastpostarray, $counters, $inforum; // this function takes the constant MAXFORUMDEPTH as its guide for how // deep to recurse down forum lists. if MAXFORUMDEPTH is not defined, // it will assume a depth of 2. // call fetch_last_post_array() first to get last post info for forums if (!is_array($lastpostarray)) ##### REPLACE if (!is_array($lastpostarray)) ##### WITH if (!$lastpostarray) ##### And that's it! Enjoy, and I hope it helps! |
thanks
|
One mistake:
Quote:
should be the following: if ($lastpostarray) |
Thanks - fixed.
EDIT: To be clear -- there used to be a typo with an 'i'. The correct replacement is what is stated in the original post, and not what is stated in the post before this one. i.e. the following is correct: ##### REPLACE if (!is_array($lastpostarray)) ##### WITH if (!$lastpostarray) ##### |
Are there other comments about the lower loading time?
|
If you put together the best images is to be determined
|
Quote:
Wrong thread? |
Thanks i wouldnt say 6x quicker but it is faster :)
Didnt work the 1st time :( tryed again then it worked, must of done something wrong. |
Based on microstats, I went from 32 seconds to 5 seconds with this one change (caching was turned off at the time). I saw a similar improvement when I did this with older boards. It will definitely depend on the number of times the code loops through that call -- so if you have more subscribed forums, or forums with more content, it will help more.
Others are definitely invited to post their measurements here. I'd be interested in how much it helps in other situations. |
Wow that is pretty kewl..........I would have to say it is atleast 6x faster.
thanks a bunch. |
All times are GMT. The time now is 10:05 PM. |
Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
![]() |
|
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|