From: Mike W. <pe...@gm...> - 2005-04-06 04:27:35
|
Here is some data on the switch example: Time for elseif: 4.5061111450195E-005 Time for switch: 1.4066696166992E-005 I put in 11 different numbers sorry for all this white space... But the results are almost idential even when $task = ""; if ($task != ""){ if ($task == 1){ print "1"; } elseif ($task == 2){ print "2"; } elseif ($task == 3){ print "3"; } elseif ($task == 4){ print "4"; } elseif ($task == 5){ print "5"; } elseif ($task == 6){ print "6"; } elseif ($task == 7){ print "7"; } elseif ($task == 8){ print "8"; } elseif ($task == 9){ print "9"; } elseif ($task == 10){ print "10"; } elseif ($task == 11){ print "11"; } } And a switch statement: switch($task) { case 1: print "1"; break; case 2: print "2"; break; case 3: print "3"; break; case 4: print "4"; break; case 5: print "5"; break; case 6: print "6"; break; case 7: print "7"; break; case 8: print "8"; break; case 9: print "9"; break; case 10: print "10"; break; case 11: print "11"; break; } > Some of it is fairly simple.... > > instead of if () {} elseif () {} elseif () {} you can use a switch > which is more maintainable and also faster in parcing since its not > having to check so much items... > > take for instance the $task in the admin.php file, now you do not need > a if ($task="") {...} as well because if its not in the switch it wont > even render thus dropping a few lines of code as well as maintaining > more readable and also quicker code since it is not doing so many > checks for each elseif. It actually is running like the following: > if ($something) { ... } else { if () { } else { if () { } } as you > can see pretty inefficent where as a case just simply follows down the > line. Then the most used go at the top making it extremely quick. > > switch($task) { > case 'cats': > break; > case 'othersection: > break; > } > > also with the print function being rendered on everyline you are > wasting quite sometime giving php the command to print where as > print "me"; > print "this"; > > could be (notice the . ): > print "me" . > "this"; > > Here is the results of doing a small test on 20 lines with just print > "something"; and then using my style with the same output: > Time for prints: 4.7922134399414E-005 > Time for appends: 2.3126602172852E-005 > > This is in microtype by the way :) > > I will add more later I have been trying to find my way to fix the > admin category bug of not showing any categories but I am still a > little unfamiliar with how this code base is other than the main files > so I have to take a peak into it somemore as I only had around 30 > minutes early to start. > > Mike > >> Hi, Mike. >> >> Thanks for posting your thoughts and comments. Could you explain how >> things could be speeded up with our current code? We most definately >> wouldn't mind doing a 1.7.x release with code improvements, but being >> the person I am, I'd like to learn more about how these things are >> speeded up. Please tell us more. >> >> Oh, and please reply to the mailing list - that way, we all benefit >> from your answers. >> >> Thanks! >> >> Mike Willbanks wrote: >> >>> Hey guys, >>> >>> I would like to say hello to you all and give thanks for creating this >>> software. >>> >>> However I would like to help smooth out some of the code and also help >>> out a bit. I was looking at the source in the 1.6 release and some of >>> the coding practices aren't quite where they should be. For instance >>> all of the else if() {} blocks and the print statements on each line. >>> >>> Just this alone would make a major increase in the speed of the >>> program. >>> So if 1.7 is the last planned release on the 1.x build I would >>> suggest >>> maybe making a 1.7.x build with some code revamping. >>> >>> >>> Mike >> >> > > |