本文作者:HelloDeveloper

在 3 月 10 日由 @百度主办、@InfoQ 策划组织和实施的第 24 期百度技术沙龙活动上,来自百度 PHP 高级顾问,PHP 语言开发组成员惠新宸(@laruence)、腾讯网媒产品技术部高级工程师付超群(@付超群)分别分享了各自在 PHP 性能优化上取得的成果及经验,话题涉及“PHP5.4 新特性与性能优化”,以及“高性能 LAMP 程序设计”等。本文将对他们各自的分享做下简单的回顾,同时提供相关资料的下载。

主题一:PHP 性能优化实践(微盘下载讲稿,观看视频)

来自百度 PHP 高级顾问,PHP 语言开发组成员惠新宸第一个为大家分享,演讲内容主要包括 PHP 5.X 版本性能对比,PHP 5.4 新特性以及常用的优化技巧等。惠新宸首先分分享了 PHP5.4 所带来的主要新特性:

Traits

Built-in web server

Array de-referencing

Class member access on instantiation

Shortened array syntax

Binary number format

本次活动主要分享到 5.3 到 5.4 版本的优化策略。惠新宸提到了 Runtime Binding Cache 策略,这样做的好处就是:

减少符号查找次数

基于 Literal Table

一次查找,就 Cache 起来

多态带来了意外

此外,亦可通过 Internal String 策略具有以下特点:

编译期已知的字符串

对于多个 Constant String,只保存一份

使用比较 Char*pointer 相等来代替 strcmp

避免了 estrdup 和 efree

预先计算 Hash Value

最后,惠新宸还提到了 Property Directly Access,Zend Signal,Request Startup/Shutdown,Ternary 及 FastCGI SAPI Optimization 等策略。

主题二:高性能 LAMP 程序设计(微盘下载讲稿,观看视频)

腾讯网媒产品技术部高级工程师付超群第二个为大家分享,主要内容分为 PHP 篇、WebServer 篇、数据库篇、常用组建篇、架构篇及前端篇等几部分。付超群首先讲解了在使用 Apache 和 Ngix 时的一些技巧与经验,如只加载用到的模块、mpm 的选择以及 CPU 亲和性等,他提到在使用 MySQL 时,通过以下策略可对性能有所提升:

动静分离

分库分表

良好的索引 &Explain

主从同步,通过从库来扩展读

尽量 Cache,减少 SQL 操作

批量操作 & 队列

此外,付超群还强调讹传比性能更可怕,比如:left join 都很慢、like 用不到索引、char 一定比 varchar 好等。在常用组件部分,付超群介绍了消息队列的用处,比如可以异步处理耗时操作(发邮件、发微薄等),这些均可通过Memcacheq、beanstalkd和RabbitMQ等开源项目实现。在涉及全文检索类操作时,可以使用scws处理中文分词,使用coreseek进行集成等。在介绍架构对性能产生的影响时,付超群建议要遵循以下原则:

先抗住,再优化

过度设计比不设计更龌龊

越简单越好

如非必要,不要引入

层次清晰

良好的监控预警

接下来付超群向大家分享了自选股产品和接口平台的构建经验以及使用情况。分享的最后,付超群还提及了在前端上的一些优化技巧:

CSS Sprite

对图片和头像等采用 Lazy Loading

合并请求

避免重定向

Gzip

采用 CDN

静态文件使用无 cookie 域名

CSS 放顶部,JS 放底部(通常情况下)

前端在 PHP 性能优化中如此重要,怪不得连 PHP 之父Rasmus Lerdorf都会认为:

PHP is rarely the bottleneck, 80-90% front-end。

Open Space(开放式讨论环节)

和以往的环节一样,​为了让参会者能够有更多的时间进行相互的交流,本次活动依然设置了 Open ​Space(开放式讨论)环节。本次还邀请到了国内问答网站 SegmentFault 到场分享,SegmentFault技术负责人祁宁和大家分享了作为国内针对程序员问答社区所遇到的技术问题和经验。

会后,一些参会者也通过新浪微博分享了他们的参会感受:​​

@xy26:懒加载是一种不错的 Web 呈现方式。

@懒桃儿吃桃儿:跨 IDC 专线进行数据同步,基础设施拼财力呀。

@陈五十:性能优化无止境,作为一个后端工程师,付超群的建议都很需要注意。

@SweetyDong:超群讲的对工作比较有帮助。

@吴佰清:最后总结,5.4 相对 5.3 带来了多大提升,主要针对 OO 来做提升,最高提升 48%。不建议升级 5.4,APC 会出现兼容性问题。

@许浩 -sean:PHP 5.4 新特性与性能优化,@Laruence 视野很开阔,收获不小。

@我爱儿童团 - 杨京:这个测试比较干货,要看看,测一下,一时半会还是不要升级,要稳定,不要着急尝鲜。

@大皮:内核级别的优化,有点深,这就是差距,好好学习吧。

@一个飞翔的鱼:PHP 5.4 的性能真是越来越好了,今天真是了解了不少内部的细节。

php百度优化,百度技术沙龙第 24 期 PHP 性能优化实践相关推荐

  1. infoQ 百度技术沙龙第25期回顾:海量数据处理技术解析

    百度技术沙龙第25期回顾:海量数据处理技术解析(含资料下载) 作者 贾国清 发布于 2012年4月8日 领域  运维 & 基础架构,  架构 & 设计,  语言 & 开发  主 ...

  2. 广州技术沙龙第 4 期报名开始!

    赖勇浩(http://laiyonghao.com) 特别告示 广州技术沙龙第 4 期,走出广州,走向深圳,将于 12 月 19 日在深圳深南东路的深圳发展银行大厦举行,并第一次组织了多达 4 个高质 ...

  3. 报名 | 美团技术沙龙第64期:美团不同业务场景下的系统架构实践

    [美团技术沙龙]由美团技术团队和美团科协主办,每期沙龙邀请美团及其他互联网公司的技术专家分享来自一线的实践经验,覆盖各主要技术领域.从2015年7月举办第一期美团技术沙龙至今,已经吸引了三万多名工程师 ...

  4. “数智话”技术沙龙 第四期 | 弹性MapReduce(EMR)专场内容回顾!

    1月10日晚19:00,腾讯云大数据"数智话"技术沙龙 第四期<EMR&StarRocks携手共建云端开源大数据生态>直播圆满落幕.本次沙龙围绕腾讯云大数据沉淀 ...

  5. 【深圳线下】FMI人工智能和大数据线下技术沙龙第870期

    活动时间:2018-12-23(周日) 活动地点:深圳市南山区华侨城侨城西街51号 鸿波酒店(深圳华侨城店) 参会规模:300 人 报名链接: [深圳线下]FMI人工智能和大数据线下技术沙龙第870期 ...

  6. matlab 动态优化,基于Matlab的测控系统动态性能优化与仿真

    随着测试技术的发展,人们采用传感器测控系统的动态性能指标来表征系统性能.描述传感器的主要动态性能指标是工作频带,系统的动态性能研究的重要一步是在辨识出合适的模型结构和模型参数的基础上,根据现有的工作频 ...

  7. 【性能优化】404- 从 12.67s到1.06s 性能优化实战

    作者:jerryOnlyZRJ 来源:https://juejin.im/post/5b6fa8c86fb9a0099910ac91 本文是对之前同名文章的修正,将所有webpack3的内容更新为we ...

  8. Android性能优化典范笔记(1)-GPU绘制性能优化

    Android性能优化典范笔记(1)-GPU绘制性能优化 你还可以再Github上找到我的这篇文章:https://github.com/onlynight/ReadmeDemo/tree/maste ...

  9. 百度技术沙龙第33期回顾:推荐引擎实战(含资料下载)

    在12月22日由@百度主办.@InfoQ负责策划组织和实施的第33期百度技术沙龙活动上,来自百度推荐与个性化部高级架构师陈天健和豆瓣网首席科学家王守崑分别分享了各自在推荐系统中的经验与实践,话题涉及& ...

最新文章

  1. 2021肿瘤学,所有SCI期刊都在这里
  2. TensorFlow——本地加载fashion-mnist数据集
  3. 处理器排行_垃圾处理器排行榜 适邦垃圾处理器榜上有名
  4. CMD命令之BAT脚本语法详解
  5. oracle拓展磁盘空间,Oracle磁盘空间使用统计
  6. 20150317--TP
  7. MySQL Semisync
  8. 用隐喻来更充分地理解软件开发
  9. poj 2955 Brackets 区间DP
  10. .net core判断当前访问源是PC端还是移动端
  11. 为什么使用@tablename起别名产生的sql语句不能用_宜信-运维-SQL优化|一文说清Oracle Hint的正确使用姿势...
  12. 西门子s7-200解密软件下载_西门子S7200软件工具——调试应用程序
  13. 计算机把时间和日历添加到桌面上,怎样在电脑原有的桌面上再添加上日历啊?....
  14. win10计算机本地组策略编辑器,win10本地组策略编辑器打不开最佳解决方法
  15. 机器人水库涵洞检测_一种水库大坝隧洞、涵洞多功能检测装置的制作方法
  16. 软件测试中单元测试,集成测试,系统测试,验收测试的区别
  17. 关于vlc编解码器暂不支持: VLC 无法解码格式“MIDI” (MIDI Audio)解决
  18. 同质化严重!购物中心如何打造差异化品牌?
  19. python 爬取《延禧攻略》所有的演员参演的电视剧
  20. CSGO社区服搭建记录

热门文章

  1. 固态硬盘基础知识,了解一下
  2. 10道虐心的Java面试题,被面试官虐哭了,同事一题都没答对
  3. [渝粤教育] 天水师范学院 高等数学(一) 参考 资料
  4. 4G 工业路由器并入cisco专网
  5. 社保基数:你确定公司给你交全了吗?
  6. (损人损己)做代码质量检查差事最易得罪人,大多是为公司干好事给自己树敌的差事...
  7. JavaScript:实现将 base64 字符串转换为字节数组算法(附完整源码)
  8. Android 最简单的自定义证件照Mask之一
  9. 左右滑屏设置_王者荣耀怎么滑屏操作 滑屏手法详解[多图]
  10. ubuntu加装固态硬盘设置