derp
84.***.***.***43 great tips for optimizing your php code!
Speed and efficiency can be very important depending on your application, but it's good to get into the right habits no matter what you are coding at the moment.So I found this easily digested list of 43 practical tips for optimizing your PHP code and I thought it should be shared..
Here are a couple excerpts;
1. If a method can be static, declare it static. Speed improvement is by a factor of 4.
2. <em>echo</em> is faster than <em>print</em>.
3. Use echo's multiple parameters instead of string concatenation.
4. Set the maxvalue for your for-loops before and not in the loop.
5. Unset your variables to free memory, especially large arrays.
6. Avoid magic like __get, __set, __autoload.
7. require_once() is expensive.
8. Use full paths in includes and requires, less time spent on resolving the OS paths.
9. If you need to find out the time when the script started executing, $_SERVER[’REQUEST_TIME’] is preferred to time().
10. See if you can use strncasecmp, strpbrk and stripos instead of regex.
11. str_replace is faster than preg_replace, but strtr is faster than str_replace by a factor of 4.
12. If the function, such as string replacement function, accepts both arrays and single characters as arguments, and if your argument list is not too long, consider writing a few redundant replacement statements, passing one character at a time, instead of one line of code that accepts arrays as search and replace arguments.
...
23. Incrementing an object property (eg. $this->prop++) is 3 times slower than a local variable.
24. Incrementing an undefined local variable is 9-10 times slower than a pre-initialized one.
25. Just declaring a global variable without using it in a function also slows things down (by about the same amount as incrementing a local var). PHP probably does a check to see if the global exists.
26. Method invocation appears to be independent of the number of methods defined in the class because I added 10 more methods to the test class (before and after the test method) with no change in performance.
27. Methods in derived classes run faster than ones defined in the base class.
2. <em>echo</em> is faster than <em>print</em>.
3. Use echo's multiple parameters instead of string concatenation.
4. Set the maxvalue for your for-loops before and not in the loop.
5. Unset your variables to free memory, especially large arrays.
6. Avoid magic like __get, __set, __autoload.
7. require_once() is expensive.
8. Use full paths in includes and requires, less time spent on resolving the OS paths.
9. If you need to find out the time when the script started executing, $_SERVER[’REQUEST_TIME’] is preferred to time().
10. See if you can use strncasecmp, strpbrk and stripos instead of regex.
11. str_replace is faster than preg_replace, but strtr is faster than str_replace by a factor of 4.
12. If the function, such as string replacement function, accepts both arrays and single characters as arguments, and if your argument list is not too long, consider writing a few redundant replacement statements, passing one character at a time, instead of one line of code that accepts arrays as search and replace arguments.
...
23. Incrementing an object property (eg. $this->prop++) is 3 times slower than a local variable.
24. Incrementing an undefined local variable is 9-10 times slower than a pre-initialized one.
25. Just declaring a global variable without using it in a function also slows things down (by about the same amount as incrementing a local var). PHP probably does a check to see if the global exists.
26. Method invocation appears to be independent of the number of methods defined in the class because I added 10 more methods to the test class (before and after the test method) with no change in performance.
27. Methods in derived classes run faster than ones defined in the base class.
Read the rest of the PHP optimization tips:
http://www.codingmentor.com/forum/43-tips-for-optimizing-your-php-code-t-186.html
Which tip was new to you?
In my case, I was surprised that @ error suppression was a speed bump. I thought removing the responsibility of PHP to invoke error logic would be a gain.