- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
LAMP人高性能LAMP程序设计付超群.ppt
无连接 Browser Cache(Expires) CSS Sprite Lazy loading 图片、头像等 合并请求 避免重定向 没流量 JS、CSS压缩 Gzip 图片压缩 Browser Cache(Last modify、Etag) Lazy loading 使用ajax减少流量 img src= / is evil 其他 CDN 静态文件使用无cookie域名 CSS放顶部,JS放底部(通常情况下) 工具 Page Speed Yslow 使用Javascript记录页面渲染时间 Thanks QA * * LAMP人 主题分享交流会 LAMP人主题分享交流会 www.LAMPER.cn QQ群:3330312 /lampercn 高性能LAMP程序设计 超群.com @fuchaoqun PHP篇 Performance… 不要用array_key_exists,用isset来判断键值是否在数组中 如有可能,采用static静态方法 避免使用__set, __get等魔术方法 使用echo代替print() 使用include、require代替include_once、require_once @操作符是邪恶的 不要把 count/strlen/sizeof 放到 for 循环的条件语句中 …… 不好意思,今天不讲这些… Why? /blog/magic-benchmarks 循环200W次 原生获取:0. 31μs/每次 __get:1μs/每次 原生设置:0.38μs/每次 __set:1.3μs/每次 说实在的,我不care这些…. But… 代码洁癖,程序中最好不要有错误,哪怕是notice 干净的代码,非必要不引入 SQL语句不要放在for循环里面执行,最好能用group by之类解决,或者合并写入 出了问题再profile你的PHP代码 通过auto loading 实现 lazy loading 相比较运行速度,更需要注意memory limit,尤其是一些shell处理脚本 Profiling PHP工具:Xdebug、xhprof,或者 整体性能工具ab -n 10000 -c 200 /test.php OpCode Try:APC、eAccelerator…. PHP Framework /benchmark PHP Tunning Case:ColaPHP ColaPHP完成一个完整的调度(Frontcontoller、Router、Dispacther、Controller、Responser),消耗0.5ms 使用Xdebug跟踪代码运行效率,使用webgrind展示 大部分的消耗在文件引用上(include/require),虽然用了opcode加速,0.3ms 大量使用__set、__get等魔术方法来实现对象的按需生成 通过spl_autoload_register实现类的lazy loading,大大提高框架速度 “短”代码 框架流程可随时被终止,只需为用到的特性买单 Webserver篇 Apache VS Nginx http://blog.a2o.si/2009/06/24/apache-mod_php-compared-to-nginx-php-fpm/ Nginx 502 /post/361/ 数据库篇 MySQL Linux server MySQL server tunning 短、小 动静分离 分库分表 良好的索引 Explain 主从同步,通过从库来扩展读 尽量Cache,减少SQL操作 批量操作 队列 讹传比性能更可怕,比如:left join都很慢、like用不到索引、char一定比varchar好,,,, NoSQL:MongoDB 架构篇 几个原则 抗住,然后再优化 过渡设计比不设计更龌龊 越简单越好 如非必要,不要引入 层次清晰 可随时替换 可水平扩展 良好的监控预警 动态应用通用结构 Cache Browser Cache Last modify、Etag、Expires Page Cache Squid、Varnish、Nginx proxy_cache、Nginx fast_cgi_cache Data Cache Memcached、Redis Nginx fast_cgi_cache fastcgi_temp_path /data/ngx_fcgi_tmp; fastcgi_cache_path /data/ngx_fcgi_cache levels=1:2 keys_zone=ngx_fcgi_cache:512m inactive=1d max_size=4
文档评论(0)