把握行业变革关键节点,12 月 19 日 - 20 日,AICon北京站即将重磅启幕! 了解详情
写点什么

百度技术沙龙第 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:364535
用户头像

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

关注

评论

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

Salesforce 容器化 ISV 场景下的软件供应链安全落地实践

阿里巴巴中间件

阿里云 容器 云原生 安全

AI人脸编辑让Lena微笑

逝缘~

华为云 AI Gallery 7月月更

想要在Linux中只显示隐藏文件,用对ls就可以实现

wljslmz

Linux 运维 7月月更

【愚公系列】2022年7月 Go教学课程 005-变量

愚公搬代码

7月月更

OpenSergo 即将发布 v1alpha1,丰富全链路异构架构的服务治理能力

阿里巴巴中间件

阿里云 微服务 云原生 云原生开源 OpenSergo

Java 9 中的字符串(String)压缩的改进

HoneyMoose

windows下设置TortoiseGit客户端连接git不用每次输入用户名和密码

乌龟哥哥

7月月更

当 Knative 遇见 WebAssembly

阿里巴巴中间件

阿里云 容器 云原生 Knative WebAssenbly

谈谈讲清楚这件事的重要性

阿里巴巴中间件

阿里云 技术 云原生

async / await

Jason199

Async await 7月月更

当我们谈论不可变基础设施时,我们在谈论什么

阿里巴巴中间件

阿里云 容器 云原生 托管

Nginx 主机配置文件中如何配置能够支持 IPv4 和 IPv6

HoneyMoose

leetcode 53. Maximum Subarray 最大子数组和(中等)

okokabcd

LeetCode 动态规划 数据结构与算法

抖音或将推出独立种草社区平台:会不会成为第二个小红书

石头IT视角

牛客java选择题每日打卡Day8

京与旧铺

7月月更

ServiceMesh主要解决的三大痛点

阿泽🧸

Service Mesh 7月月更

Ubuntu22.04 源码安装Python3.10

IT蜗壳-Tango

7月月更

一个开发者自述:我是如何设计针对冷热读写场景的 RocketMQ 存储系统

阿里巴巴中间件

阿里云 RocketMQ 云原生编程挑战赛

架构实战营模块 6 作业

Roy

架构实战营

算法入门很简单:算法题的破解之道上篇

宇宙之一粟

算法 7月月更

Qt 实现容器的DELETE的方式

小肉球

qt 7月月更

组织实战攻防演练的5个阶段

穿过生命散发芬芳

攻防演练 7月月更

鸿蒙智联汽车【1.0】

坚果

HarmonyOS OpenHarmony 7月月更

LinkedBlockingQueue源码分析-初始化

zarmnosaj

7月月更

《HarmonyOS实战—入门到开发,浅析原子化服务》

攻城狮杰森

操作系统 HarmonyOS 7月月更

自律,提升自制力原来也有方法

沃德

程序员 7月月更

offer如何选择该考虑哪些因素

KEY.L

7月月更

全链路压测:影子库与影子表之争

阿里巴巴中间件

阿里云 云原生 全链路压测 影子

Android 面试知识点

沃德

android 程序员 7月月更

一个酷酷的“幽灵”控制台工具

为自己带盐

C# 控制台 7月月更

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