"the joy of eliminating code that sucks is so great i must tell you all about it right now in case the world ends this very minute"
Working on my website PHP code off-line out of the wild. It's code which has existed for a few years now. Some of the routines might hark back to when I first started coding in PHP in 2005(?). At some point between now and then I created a keywords facility. The first implementation was really slow. The second implementation was a vast improvement in that it didn't collate and order all the keywords twice. As my skills in PHP advanced I wanted it to do more and consequently added bits and pieces here and there. One of thoses bits and pieces was the ability to link to the parent of a page, a random page, or the current page. Having once coded in C++, the way of linking to the current page was to link to *this, and consequently linking to a random page became *random. The easy way of doing this to get it to work as easily as possible was to blindly use str_replace on *every single link* that was created. The keywords page - without any keyword refinement - currently produces 717 links. That's over 2100 calls to str_replace. In Debian it doesn't seem to be an issue, but on Arch, generating the page took 8 seconds. After a few false starts micro-optimizing link and keyword code to no avail, I saw the str_replace calls and wondered what would happen if I made them conditional on strpos finding an asterisk in the link data. Well what do you know? That simple test reduces the keyword page build time down from 8 seconds to just under half a second. Lah-dee lah-dee dah! -- http://jwm-art.net/ image/audio/text/code/ _______________________________________________ NetBehaviour mailing list [email protected] http://www.netbehaviour.org/mailman/listinfo/netbehaviour
