- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[试读]动态脚本加速-避免重复编译
以下为《构建高性能Web站点》部分内容节选,感谢您的阅读,您可以自由传播它,但请确保它的完
整性。
《构建高性能Web站点》目前还在编写中,预计上市时间为2009年9月,出版商为电子工业出版
社。在本书上市之前,作者希望听到更多的建议和支持,如果您希望了解本书编写进展、试读内容节
选、反馈宝贵建议,请您加入以下讨论组,对于讨论组活跃的成员,新书上市后会获得赠送版,以表感
谢。
《构建高性能Web站点》读者讨论组
/group/highperformanceweb
截至目前完成的内容索引列表
/group/highperformanceweb/web/ 《构建高性能web站点》已完成
内容索引
动态脚本加速动态脚本加速
避免重复编译避免重复编译
了解了opcode以及它的编译过程后,现在,回到我们的主题,它能为我们的性能优化做点什么呢?也
许你还没有意识到生成opcode这一过程的开销,只因为刚才我们的计算量实在太少,那么,现在我们
是时候回到真实的Web应用中了,可以肯定的是,生成opcode的开销肯定存在,甚至非常可观,我们
能否想办法来节省这部分开销呢?
也许你和我想的一样,毫不犹豫的将动态内容缓存思想沿用在这里,通过opcode缓存,来避免重复的
opcode编译。
这引发了我对之前探讨人脑对于1+1计算的思考,似乎我们也应用了某种意义上的opcode缓存,至少
我在计算1+1的时候,根本没有实际去计算,只是感觉从某个地方直接蹦出来了“2” ,这个结果完全来
源于多年来的“经验缓存” 。
可是,要缓存opcode ,我们在应用层是无能为力的。幸运的是,有一些优秀的opcode缓存器扩展,
比如php可以选择APC 、eAccelerator 、XCache等,它们都可以将opcode缓存在共享内存中,而且
你几乎不需要修改任何代码。
APC
我们先来试试APC ,记得要在php.ini中打开opcode cache的开关:
apc.cache_by_default = on
你也可以通过apc.filters ,让APC只对特定范围的动态程序进行opcode缓存。
还记得前边的动态网页place_posts.php吗?它在使用Smarty内置缓存方法的时候,吞吐率只有
173.95 reqs/s ,为此我们曾经对Smarty内置缓存方法深恶痛疾。这里我们在使用APC opcode
cache的情况下,对它来了一次同样的压力测试,结果如下:
Document Path: /place_posts_cache.php?marker_id=12882
Document Length: 13000 bytes
Concurrency Level: 100
Time taken for tests: 0.885 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: bytes
HTML transferred: bytes
Requests per second: 1148.70 [#/sec] (mean)
Time per request: 88.522 [ms] (mean)
Time per request: 0.885 [ms] (mean, across all concurrent
requests)
Transfer rate: 14523.44 [Kbytes/sec] received
什么?从173.95 reqs/s到1148.70 reqs/s ,虽然你可能不相信,但这的确是事实。借助opcode缓
存的神奇魔力,我们将之前的几种动态内容整页缓存方法再次进行压力测试,得出的结果如下:
无脚本加速无脚本加速 APC opcode cache
不使用缓存 51.59 92.96
Smarty cache 173.95
您可能关注的文档
- SIUE School of Engineering operating papers (助教副教授教授任职条件).pdf
- SMR中控控制Digitool音量.pdf
- Snapchat靠电商广告翻身估值250亿美元上市,你的Snap广告做的如何?.docx
- SiteTalk3.8的登录与资料填写.doc
- SOTECO中文样本.pdf
- SOUTHCO 02按压式门锁——深圳达赛斯.pdf
- SOUTHCO c3按压式门锁.pdf
- SOX新辅助化疗方案结合手术治疗局部晚期胃癌的临床观察.pdf
- SK-600I精度校准.pdf
- Sql server四种执行ExecuteReader、ExecuteNonQuery、ExecuteScalar、DataSet.docx
文档评论(0)