《构建高性能web站点》动态脚本加速
不可否认,动态脚本语言在互联网中占有举足轻重的地位,其最大的好处就是开发成本低、开发速度极快,这极大符合互联网的发展情况。3p系列(php、python、perl)和java(暂且把java的web开发也算到脚本语言中,其实差不多),成为目前web开发最强大的中间层(处于数据存储和前端界面的逻辑层)。
主要使用java的网站:淘宝(现在也部分使用php了),搜狐,人人
主要使用php的网站:facebook,sina,baidu,qq,kaixin001,各大团购网站
主要使用python的网站:google,douban
perl好像现在很少人用来写web中间逻辑层了,更偏向于系统去了。
有人说脚本语言执行效率太低,最好用c、c++来写网页。这个不是不可以,但是目前硬件如此便宜,开发时间如此之短,产品更改如此频繁,中国特色如此之多,如果用c、c++来做这中间的逻辑层,程序员的工资就会翻上好几倍,开发时间也会长上好几倍,c、c++的程序员都是完美主义者,他们不希望自己设计的软件被被人摆布,说怎么改就怎么改(主要是改起来太麻烦了,牵一发而动全身)),最后上线,发现用c、c++程序安装到线上的时候运维搞不定,悲剧,只能自己维护自己的代码。
总的来说,用脚本语言来处理web的中间逻辑层目前还没有遇到大的性能问题,不然facebook早变成myspace了。
总结1:php parsekit扩展 ,主要是用来看php的opcode
安装php的扩展
wget http://pecl.php.net/get/parsekit-1.3.0.tgz
tar xzvf parsekit-1.3.0.tgz
cd parsekit-1.3.0
/usr/local/php-fcgi/bin/phpize
./configure --with-php-config=/usr/local/php-fcgi/bin/php-config
make;make install
vim /usr/local/php-fcgi/etc/php.ini
//加入 extension=parsekit.so
php -m|grep parsekit
运行
php -r "var_dump(parsekit_compile_string('print 1+1;'));"
就可以打印出opcode的数组
php 的opcode和汇编类似的,是一种二元运算的赋值语法,比如
res1 = 1+1
res2 = res1*3
总结2:几种php的opcode(APC,eAccelerator,xcache)
其实都应该是差不多的,网上有一些比较的教程,可以参考一下
http://apps.hi.baidu.com/share/detail/15405216
我常用的是eAccelerator,这篇文章很全面,值得一看http://www.toplee.com/blog/100.html#pp1
eAccelerator 可以开启debug模式,
eaccelerator.debug=”1″
eaccelerator.log_file = “/var/log/httpd/eaccelerator_logg”
这样就可以看到那些文件被缓存了
总结3:xdebug 和wincachegrind 在windows 下看php程序运行效率
xdebug 是目前开发的时候最好的php代码调试工具和php效率检测工具,刻意和wincachegrind一起在windows下查看php程序的运行效率。
这里有比较详细的xdebug的教程 http://bbs.phpchina.com/thread-209365-1-1.html
1.下载地址:http://www.xdebug.org/download.php
版本选择: xdebug有Non-thread-safe(非线程安全)、thread-safe(线程安全)
写一个test.php,内容为,搜索"Thread Safety" enable为线程安全版、disable为非线程安全版
选择VC6还是VC9?
标明 MSVC9 (Visual C++ 2008) 的是VC9
如果你在apache1或者apache2下使用PHP,你应该选择VC6的版本
如果你在IIS下使用PHP应该选择VC9的版本
VC6的版本使用visual studio6编译
VC9使用Visual Studio 2008编译,并且改进了性能和稳定性。VC9版本的PHP需要你安装Microsoft 2008 C++ Runtime
不要在apache下使用VC9的版本
2.Xdebug安装:
将下载的php_xdebug-2.1.0-5.2-vc6.dll放到php的ext目录,重命名为php_xdebug.dll;
3.编辑php.ini,加入下面几行:
[Xdebug]
extension=php_xdebug.dll
xdebug.profiler_enable=on
xdebug.trace_output_dir="X:\Projects\xdebug"
xdebug.profiler_output_dir="X:\Projects\xdebug"
xdebug.profiler_output_name = "cachegrind.out.%p"
最后一行主要是为了和wincachegrind.out整合
后面的目录“I:\Projects\xdebug”为你想要放置Xdebug输出的数据文件的目录,可自由设置。
4. 重启Apache;
5. 写一个test.php,内容为,如果输出的内容中有看到xdebug,说明安装配置成功。
下载wincachegrid http://sourceforge.net/projects/wincachegrind/
打开在那个目录中生成的 cachegrind.out.* 就可以看到每一个过程调用执行了多长时间
总结3:xhprof 在linux 下看php程序运行效率
xhprof 是facebook开发出来的查看php效率的工具,非常牛逼,可以生成时间消耗图片
具体安装 http://hi.baidu.com/thinkinginlamp/blog/item/f4bd08fa1a03ba9e59ee90fd.html
快速体验可以到新浪的云计算平台 http://sae.sina.com.cn 体验
它生成的图片如下
- 下一篇: ubuntu下dell Latitude E5400 无线网卡安装【转载】
- 上一篇: 今天姐姐结婚了
相关推荐
- 鹰的重生
- Posted on 11月19日
- 《构建高性能web站点》–服务器并发处理能力(3)
- Posted on 03月31日
- php技术大会2011
- Posted on 05月08日
- 我眼中的民办教师
- Posted on 12月06日