NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

百度技术沙龙第 24 期回顾:PHP 性能优化实践(含资料下载)

  • 2012-03-17
  • 本文字数:1953 字

    阅读完需:约 6 分钟

在 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 的性能真是越来越好了,今天真是了解了不少内部的细节。

有关百度技术沙龙的更多信息,可以通过新浪微博关注 ** @百度技术沙龙,或者加入百度技术沙龙微群 **,InfoQ 上也总结了过往 23 期所有百度技术沙龙的演讲视频和资料等,感兴趣的读者可以直接浏览阅读

号外: 2012 百度开发者大会将于 3 月 23 日在北京国际会议中心举行。众多技术专家将与您一同探讨“应用为王”的中国互联网趋势和开发者在开放格局下的新机遇;深度交流搜索引擎、云计算、移动互联网、Web Apps 等方向的技术创新。现在可以免费报名,或查看大会详细议程

2012-03-17 18:363990
用户头像

发布了 156 篇内容, 共 49.6 次阅读, 收获喜欢 7 次。

关注

评论

发布
暂无评论
发现更多内容

Apache IoTDB & SeaTunnel 联合 Meetup | 10月15日 线上直播预约开启!

Apache IoTDB

阿里云数据湖3.0解决方案两度登上InfoQ 2022年度榜单

云布道师

阿里云

传输丰富的特征层次结构以实现稳健的视觉跟踪 Transferring Rich Feature Hierarchies for Robust Visual Tracking

代码的路

神经网络

数据湖(十八):Flink与Iceberg整合SQL API操作

Lansonli

数据湖 1月月更

CheckStyle使用

soap said

idea插件 格式化代码

深度学习跟踪DLT (deep learning tracker)

代码的路

深度学习

使用 NineData 访问 SQL Server 数据库

NineData

sql 数据迁移 逻辑备份 NineData SQL Server

python 中 json 序列化汇总

ModStart

新一代 IT 服务管理平台 DOSM,助力企业数字化转型

云智慧AIOps社区

数字化转型 运维自动化 智能运维 云智慧 IT管理

当我们在谈论DataOps时,我们到底在谈论什么

阿里云大数据AI技术

大数据 运维 数据管理 企业号 1 月 PK 榜

如何提高Java代码的质量!

风铃架构日知录

Java 程序员 后端 IT 代码规则

阿里妈妈 Dolphin 智能计算引擎基于 Flink+Hologres 实践

阿里云大数据AI技术

人工智能 大数据 flink 计算引擎 企业号 1 月 PK 榜

“天猫双11”背后的流量治理技术与标准实践

阿里巴巴中间件

阿里云 云原生 OpenSergo

EMQ & IoTDB 联合 Meetup 回顾 | 数据基础设施软件的应用实践分享

Apache IoTDB

知道这10个让你的API接口突然超时的原因吗?

风铃架构日知录

Java IT java程序员 超时 API接口

Java二级高速缓存架构设计

元年技术洞察

缓存 数字化转型 二级缓存 Spring Cache Java’

到底什么样的 REST 才是最佳 REST?

小小怪下士

Java 程序员 Rest API

IoT 设备发送 MQTT 请求上云协议讲解——基础知识

阿里云AIoT

缓存 监控 存储 传感器 消息中间件

为什么我们的微服务中需要网关?

江南一点雨

nginx SpringcloudGateway

如何用 7 分钟玩转函数计算?

Serverless Devs

亚马逊云科技启示录:创新作帆,云计算的征途是汪洋大海

亚马逊云科技 (Amazon Web Services)

云计算 亚马逊云科技 Builder 专栏

面积曲线AUC(area under curve)

代码的路

图像处理

带你玩转OpenHarmony AI-基于海思NNIE的AI能力自定义

OpenHarmony开发者

OpenHarmony

C++基础知识

代码的路

c++

软件测试/测试开发丨Java or Python?测试开发工程师如何选择合适的编程语言?

测试人

Java Python 软件测试 自动化测试 测试开发

Linux常用命令

代码的路

Linux

Apache IoTDB 中的时间精度 | 铁头乔分享

Apache IoTDB

Curve 文件存储在 Elasticsearch 冷热数据存储中的应用实践

网易数帆

elasticsearch 云原生 分布式存储 curve 企业号 1 月 PK 榜

接口压测实践-压力测试常见参数解释说明

不想敲代码

性能测试 接口测试 压力测试 测试工具 接口测试工具

PCB行业龙头企业*IoTDB | 利用 IoTDB 替换HBase,打破查询功能局限性

Apache IoTDB

Linux挂载硬盘

代码的路

Linux

百度技术沙龙第24期回顾:PHP性能优化实践(含资料下载)_JavaScript_贾国清_InfoQ精选文章