50 Ways to optimize PHP program performance

Source: Internet
Author: User
Tags switch case

  1. Using single quotes instead of double quotation marks to contain strings can be faster. Because PHP will search for variables in a string surrounded by double quotes, single quotes will not, note: only echo can do this, it is a string can be used as a parameter of the "function" (in the PHP manual that Echo is a language structure, not a real function, so the function with double quotation marks).
  2. If you can define a method of a class as static, try to define it as static, and it will rise nearly 4 times times faster.
  3. 7 times times the speed of the $row [' ID '] is $row[id]
  4. echo is faster than print, and uses Echo's multiple parameters (referring to commas instead of periods) instead of string connections, such as Echo $str 1, $str 2.
  5. Determine the maximum number of loops before executing the FOR loop, do not calculate the maximum value once per loop, preferably using foreach instead
  6. Unregister those unused variables, especially large arrays, in order to free up memory.
  7. Try to avoid using __get,__set,__autoload.
  8. Require_once () is costly.
  9. Include files with absolute paths as much as possible, because it avoids the speed with which PHP can find files in include_path, and it takes less time to parse the operating system path.
  10. If you want to know when the script starts executing (the server side receives a client request), use $_server[' request_time '] better than Time ()
  11. function to perform the same function instead of a regular expression.
  12. The Str_replace function is faster than the Preg_replace function, but the efficiency of the STRTR function is four times times that of the Str_replace function.
  13. If a string replaces a function that accepts an array or character as an argument, and the parameter length is not too long, consider writing an additional replacement code so that each pass argument is a character instead of just one line of code that accepts the array as a parameter for querying and replacing.
  14. It is better to use multiple if,else if statements using the Select Branch statement (that is, switch case).
  15. Blocking error messages with @ is very inefficient and extremely inefficient.
  16. Open the Apache Mod_deflate module to improve the browsing speed of your Web pages.
  17. The database connection should be turned off when it is finished, not with a long connection.
  18. Error messages are costly.
  19. Incrementing a local variable in a method is the fastest speed. is almost equivalent to the speed at which local variables are called in the function.
  20. Incrementing a global variable is twice times slower than incrementing a local variable.
  21. Incrementing an object property, such as $this->prop++, is 3 times times slower than incrementing a local variable.
  22. Incrementing a non-predefined local variable is 9 to 10 times times slower than incrementing one of the pre-defined local variables.
  23. Defining only a local variable without calling it in the function also slows down the speed (which is equivalent to incrementing a local variable). PHP will probably check to see if there are global variables.
  24. The method invocation appears to be independent of the number of methods defined in the class, because I added 10 methods before and after the test method, but there was no performance change.
  25. A method in a derived class runs faster than the same method that is defined in the base class.
  26. Calling an empty function with one parameter takes a time equivalent to performing a local variable increment operation of 7 to 8 times. A similar method call takes a time close to 15 local variable increment operations.
  27. Apache parsing a PHP script is 2 to 10 times times slower than parsing a static HTML page. Use static HTML pages as much as possible and use fewer scripts.
  28. Unless the script can be cached, it will be recompiled every time it is called. Introducing a set of PHP caching mechanisms can typically improve performance by 25% to 100% to eliminate compilation overhead.
  29. Try to cache and use memcached. The memcached is a high-performance memory object caching system that can be used to accelerate dynamic WEB applications and reduce database load. Caching of the OP code is useful so that the script does not have to recompile for each request.
  30. When you manipulate a string and need to verify that its length satisfies a certain requirement, you will of course use the strlen () function. This function executes quite quickly because it does not do any calculations and only returns the length of the known string stored in the Zval structure (the built-in data structure of C for storing PHP variables). However, because strlen () is a function, it is somewhat slower, because function calls go through a number of steps, such as lowercase letters (lowercase, PHP does not differentiate between function names), and hash lookups, which follow the called functions. In some cases, you can use the isset () technique to speed up execution of your code. (for example) if (strlen ($foo) < 5) {echo "Foo is too Short" $$} (compared with the following tips) if (!isset ($foo {5})) {echo "Foo is too Short" $$ Calling Isset () happens to be faster than strlen (), because unlike the latter, Isset (), as a language structure, means that its execution does not require function lookups and lowercase letters. In other words, you're actually not spending much overhead in the top-level code that examines the length of the string.
  31. When the variable $i is incremented or decremented, $i + + will be slower $i than the + +. This difference is unique to PHP and does not apply to other languages, so please do not modify your C or Java code and expect them to become fast and useless. + + $i is faster because it requires only 3 instructions (opcodes), $i + + requires 4 instructions. The post increment actually produces a temporary variable, which is then incremented. The predecessor increment is incremented directly on the original value. This is one of the most optimized processing, as Zend's PHP optimizer did. It is a good idea to keep this optimization in mind, as not all of the instruction optimizer will do the same optimizations, and there are a large number of Internet service providers (ISPs) and servers that do not have the command optimizer installed.
  32. Not necessarily object-oriented (OOP), object-oriented tends to be expensive, and each method and object invocation consumes a lot of memory.
  33. Arrays are also useful not to implement all of the data structures in a class.
  34. Don't subdivide the method too much, think about what code you really want to reuse?
  35. When you need it, you can always break the code down into methods.
  36. Try to use a lot of PHP built-in functions.
  37. If there are a lot of time-consuming functions in your code, you might consider implementing them in C extensions.
  38. Evaluate the test (profile) of your code. The inspector will tell you what parts of the code are consuming time. The Xdebug debugger contains an inspection program that can show the bottleneck of the code in general.
  39. The mod_zip can be used as an Apache module to instantly compress your data and reduce data transfer by up to 80%.
  40. In the case can be replaced with file_get_contents file, fopen, feof, Fgets and other series of methods, try to use file_get_contents, because his efficiency is much higher! But pay attention to file_get_contents The PHP version problem when opening a URL file;
  41. As far as possible to file operations, although the PHP file operation efficiency is not low;
  42. Optimize the Select SQL statement and make the Insert and Update operations as few as possible;
  43. Use PHP intrinsics as much as possible (but I'm wasting the time that could have written a custom function to find a function that doesn't exist in PHP, experience problem!);
  44. Inside the loop, do not declare variables, especially large variables: objects (This is not just a question to be aware of in PHP?);
  45. Multidimensional arrays try not to loop nested assignments;
  46. Do not use regular expressions in cases where PHP internal string manipulation functions are possible;
  47. foreach is more efficient and uses foreach instead of while and for loops as much as possible.
  48. Use single quotation marks instead of double quotation marks to reference strings;
  49. Replace i=i+1 with I+=1. In line with C + + habits, high efficiency
  50. For the global variable, it should be used up unset () off;

50 Ways to optimize PHP program performance

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.