1. Keep Caching
Telling you to keep caching would not be the first time you have heard it. You have most probably heard it almost everywhere, which only emphasizes how important the advice when it comes to PHP software development. To name a few tools which could help with you with this task, we have on our list Memcache (one of the oldest yet effective tools) or Varnish (which is comparatively newer but more powerful than most others).
Memcache provides you with a simple yet capable mechanism of creating server-side caches. To create more advanced caches, try Varnish, which is a mix of cache and HTTP reverse proxy (also dubbed as HTTP accelerators).The actual question you need to ask yourself is whether you really need to execute the PHP code repeatedly. If info remain unchanged or the user can see one snapshot of the real status, the caching approach will save you CPU cycles as well as accelerate the process.
2. Try and stay away from Loops
Loops are extremely powerful programming tools and hence we use it to our heart’s content! But this very instrument can end up becoming a source of frustration for us. Loops are often the sources of bottlenecks. One operation may be executed slowly but if it is inside a loop, the problem will be magnified several times. But this does not mean that loops are all bad. What is necessary is that you have to assess your loops, especially nested loops with care and a watchful eye, if you wish to bypass the usual problems. You can do this with help of a few simple pointers:
• watch out for big loops
• see if they iterate large amount of data
• have them measured
• if the operation inside the loop be cached
The basic thing comes down to the simple fact that you have to know where the big loops are and why. You have to be aware of the potentially expensive loops.
3. Consider Queues to be your friend
It is sometimes necessary to execute tasks inside the user request but it I not always the case. Let’s say for example you wish to send out an e-mail when the receiver submits an action. The mail can be sent with a simple PHP script but the action will take upto a second. If you care to wait until the end of the script, you will know for sure that when the user receives the alert “email sent” the particular e-mail has been delivered.
But the action can be queued and the second one freed from the request. The e-mail will be sent later and he/she won’t have to wait until has been sent. This process comes in real handy if the application is of small magnitude. Use the famous and efficient Gearman framework tool to make queues and parallel processing. It is widely used within web application, by websites like Grooveshark and Instagram.
4. Beware of Database Access
This is the key player when it comes to performance issues and most performance problems. If one were a betting man, it could be ascertained, even without looking up the code, the fault in a website performance were caused by database accessing. Database connections are costly endeavors, especially with languages like PHP,due to lack of connection pooling. Moreover, the distinction between a simple query using an index or without, may be gigantic. The best bit of advice regarding this situation is to check the database indexes- SQL queries utilizing incorrect indexes tend to reduce speed of the performance application .Try and use prepared statements which prevent SQL interjections and always take care how you enhance your performance.
5. Robust Traffic
One thing may be haunting you all the time. What if your application gets accessed by thousands of users at the same time? Will the server be able to manage the workload? Is it robust enough to hold its own? You can find that out without much trouble. There are 2 convenient ways of checking that.
Try jamming your traffic stream with 1,000 or more users in the development environment. If you don’t have so many people available, you have to use special tools for achieving this end result. There are many such tools. One tool that comes highly recommended is the open-source solution called apacheab,can to create connections with your server and load test sample pages. You can also use the services of Load Tester from Web Performance,Inc which can generate upto 1,000,000 concurrent users (free version) on your network.