一、采用基准测试,检测代码的性能
基准测试涉及Web应用程序时,通常指“压力测试”,即在你的代码中尽可能多地加载流量,然后衡量它的执行能力。
推荐两种基准测试的工具:ApacheBench(ab)和JMeter。
要进行压力测试,我们需要两个东西:同时在线的用户和大量的请求。使用这些工具后,很多同时运行的应用程序线程便代表了用户。因此我们只需记住:并发线程=并发用户。
1、ApacheBench超级简单,通常包含了Apache安装,或是作为Apache开发包的一部分——一个被称为简单ab的二进制文件。要使用ab,只需指定请求的总数(-n),以及并发线程的数量(-c),然后让它开始工作。
例如:我们在这里使用-n 1000 -c 20生成20个并发线程执行1000个请求。
$ ab -n 1000 -c 20 http://example.org/
ab使用参考:http://httpd.apache.org/docs/2.0/programs/ab.html
2、JMeter是另一个具备GUI的Apache项目,而且具备更多功能。若要使用JMeter,你需要创建一个测试计划,添加线程组、添加采样器、指定JMeter的配置、添加Cookie处理器这样的其他选项、增加监听器处理结果。
JMeter网站:http://jmeter.apache.org/
二、利用缓存提高代码性能
1、对于Apache服务器,利用apc实现代码缓存。
从PECL(PHP Extension Community Library,PHP扩展共享类库)中获取APC进行编译,然后安装该扩展。
$ pecl install apc
在这之后,根据设置,需要编辑php.ini文件并添加它:
extension = apc.so
重新启动Apache,然后就可以了。
apc使用参考:http://www.php.net/manual/en/book.apc.php
2、对于Windows/IIS服务器,利用微软的WinCache实现代码缓存。
WinCache网站:http://www.iis.net/downloads/microsoft/wincache-extension
3、利用memcached实现会话数据缓存,memcached是基于内存的、群集友好的键/值对存储。如果你启用memcached扩展,就可以自动使用memcached代替磁盘存储回话。