php性能优化

PHP接口性能优化之路 最近在做PHP接口的性能优化,在排查性能问题和优化的过程中总结了一些心得,分享给大家。 性能问题排查 首先,做性能优化要先进行性问题排查,即排查PHP接口的代码实现中那一块执行比较慢。 排查方法一 笔者使用的ThinkPHP框架中自带了G方法可以很方便的获取某个区间的运行时间和内存占用情况。 例如: G('begin'); // ...其他代码段 G('end'); // ...也许这里还有其他代... 阅读详情
序
 
  很长时间没有写博文了,最近换了工作,长时间加班,根本没有时间做其他事情!今天闲下来了,想一想php性能方面的事情。这也是我2014年的第一篇博文!
  推荐阅读:初学者到中级者应该掌握的!
 
  php是一个很流行的脚本语言,现在很多公司(新浪、优酷、百度、搜狐、淘宝等等)在使用这种语言进行网站开发。我的这篇文章,我只是希望能够提高你的php脚本性能。请记住你的php脚本性能,很多时候依赖于你的php版本、你的web server环境和你的代码的复杂度。
 
 
优化你代码中的瓶颈
 
Hoare曾经说过“过早优化是一切不幸的根源”。当你想要让你的网站更快运转的时候,你才应该去做优化的事情。当你要改变你代码之前,你需要做的事是什么原因引起了系统缓慢?你可以通过以下指导和其他方式优化你的php,可能是数据库原因也可能是网路原因!通过优化你的php代码,你能尝试着找出你的系统瓶颈。
 
 
升级你的php版本
 

 你的团队成员提出,这些年php引擎已经有很多象征性的性能提升。如果你的web server仍然运行着比较老的版本,如php3或者php4。那么在你尝试着优化你代码之前,应该先深入调查一下版本之间的升级情况。

点击以下链接,可以了解具体细节: 

从 PHP 4 移植到 PHP 5
 

使用缓存
 
利用缓存模块(如Memcache)或者模板系统(如Smarty)进行缓存处理。我们可以缓存数据库结果和提取页面结果的方式来提升网站性能。
 
 
使用输出缓冲区
 
当你的脚本尝试着渲染的时候,php会使用内存缓存区保存所有的数据。缓存区可能让你的页面看起来很慢,原因是缓冲区填满所有要响应的数据之后再把结果响应给用户。幸运的是,你能够做一下改变,迫使php强行在缓冲区填满之前把数据响应给用户,这样就会让你的网站看起来更快一些。
 
避免写幼稚的setters和getters
 
当你写php类的时候,你可以直接操作对象属性,这样能帮助你节省时间和提升你的脚本性能。而不是那种让人感到幼稚可笑的setters和getters。
下面是一些案例:dog类通过使用setName()和getName()方式来操作name属性。
 
 
1
2
3
4
5
6
7
8
9
10
11
class  dog {
   public  $name  =  '' ;
 
   public  function  setName( $name ) {
     $this ->name =  $name ;
   }
 
   public  function  getName() {
     return  $this ->name;
   }
}

  

注意:setName()和getName()除了存储和返回name属性外,没做任何工作。

1
2
3
$rover  =  new  dog();
$rover ->setName( 'rover' );
echo  $rover ->getName();

  

直接设置和访问name属性,性能能提升100%,而且也能缩减开发时间!

 
1
2
3
$rover  =  new  dog();
$rover ->name =  'rover' ;
echo  $rover ->name;

  

 
没有原因不要copy变量
 
有时初级phper,为了使代码更加“干净”,常常把已经定义的变量重新赋值给另一个变量。这实际上就导致了双重内存的消耗(当改变变量的时候),这就导致脚本的性能下降。比如一个用户把一个512KB的变量在额外插入给另一个变量,那么就会导致1MB的内存被消耗掉。
 
1
2
$description  =  strip_tags ( $_POST [ 'description' ]);
echo  $description ;

  

上面的代码没有任何原因,复制了一遍变量。你仅需要使用内联的方式简单输出变量,而不用额外的消耗内存。
 
1
echo  strip_tags ( $_POST [ 'description' ]);

  

 

避免循环做SQL操作
 
经常犯的错误是把一个SQL 操作放置到一个循环中,这就导致频繁的访问数据库,更重要的是,这会直接导致脚本的性能低下。以下的例子,你能够把一个循环操作重置为一个单一的SQL语句。
 
1
2
3
4
foreach  ( $userList  as  $user ) {
   $query  =  'INSERT INTO users (first_name,last_name) VALUES("'  .  $user [ 'first_name' ] .  '", "'  .  $user [ 'last_name' ] .  '")' ;
   mysql_query( $query );
}

  过程:

1
INSERT INTO users (first_name,last_name) VALUES( "John" ,  "Doe" )

  

替换这种循环方案,你能够拼接数据成为一个单一的数据库操作。

1
2
3
4
5
6
$userData  =  array ();
foreach  ( $userList  as  $user ) {
     $userData [] =  '("'  .  $user [ 'first_name' ] .  '", "'  .  $user [ 'last_name' ] .  '")' ;
  }
$query  =  'INSERT INTO users (first_name,last_name) VALUES'  . implode( ',' ,  $userData );
mysql_query( $query );

  过程:

1
INSERT INTO users (first_name,last_name) VALUES( "John" ,  "Doe" ),( "Jane" ,  "Doe" )...

  


转自:http://www.cnblogs.com/baochuan/p/3523677.html


PHP性能优化 PHP虽然是世界上最好的语言,但是它本身作为一门脚本语言,其运行效率一直被人们所诟病。 作为以PHP为开发语言的应用程序而言,PHP程序的性能能影响到整个架构性能的百分之30左右,不会超过百分之50,其余的是硬件的、操作系统的、存储的等等其他性能优化;因此,PHP程序的性能好坏,对于整个系统架构而言,还是很重要的。 PHP的性能优化分为一下三个层次: 这三个层次性能优化的难度依次上升,效果却依次... 阅读详情

相关推荐

性能优化之PHP优化

1.压力测试工具ab如何使用:./ab -n 1000 -c 100 http://www.baidu.com-n请求数-c并发数2.PHP语言性能优化1)少写代码,多用PHP自身能力2)产生额外开销的错误抑制符@建议:不要使用错误抑制符,会产生性能开销;尽量使用try....catch()3)合理使用内存注意:在脚本中大量使用内存会使系统缓慢4)尽量少的使用正则表达式5)避免再循...

nostrud ipsum6 251

解决PHP数组内存耗用太多的问题

解决PHP数组内存耗用太多的问题     一般来说,PHP数组的内存利用率只有 1/10, 也就是说,一个在C语言里面100M 内存的数组,在PHP里面就要1G。 特别是在PHP作为后台服务器的系统中,经常会出现内存耗费太大的问题。     因为这个是语言的问题,常规方案比较难以解决。下面是一种通过string 解决的方案。     代码...

weixin_37586145的博客 229

VUE3如何使得大屏自适应的几种方法?

16:9。

weixin_42711805的博客 1万+

如何进行PHP性能优化?

PHP性能优化是一个复杂且多方面的过程,涉及从代码层面到服务器配置的多个方面。以下是一些关键的优化技巧和最佳实践:选择合适的数据结构(如数组、对象等)可以显著提高程序的运行效率。缓存是提升PHP性能的有效手段之一。可以通过页面缓存、数据缓存、内存缓存等方式来减少重复计算。例如,使用APC、Memcached或Redis进行内存缓存,或者利用文件系统进行数据缓存。使用索引、优化SQL查询语句以及使用ORM框架可以提高数据库性能。合理设置缓存时间以确保数据的一致性和及时更新也是必要的。

破损的天堂鸟博客 1732

用Isaac Sim复现经典案例:手把手教你写Python脚本控制机械臂抓取(附避障算法调试心得)

本文详细介绍了如何使用NVIDIA Isaac Sim仿真系统复现机械臂抓取经典案例,包括Python脚本编写、避障算法调试等关键步骤。通过URDF模型导入、关节控制逻辑实现和RMPFlow避障配置等实战演示,帮助开发者快速掌握机器人仿真技术,特别分享了官方文档未提及的实用调试技巧和性能优化策略。

weixin_30632089的博客 407

GDI文字绘制和windows下opengl文字绘制小结

GDI绘制文字,要设置文字的属性,主要就是通过设置DC中的font对象来实现的。 font对象的创建可以由createfont()、createfontIndirect()来实现。 HFONT CreateFont( int nHeight, // height of font int nWidth, // average

T_W_S的专栏 5323

关于 PHP 性能优化

本文写的也是关于PHP性能优化方面的话题,虽然老生常谈,但还是以我的角度来一个总结或分享。 网上关于50条PHP优化的方法,除此之外从架构或环境方面的优化建议等,是非常有益的。下面讲讲我所关注的一些方法或建议。 一般来说,性能优化可从大的方向开始,从对影响性能比较大的因素来考虑。比如现在使用PHP5.7,性能据说可以成倍增长。

很青的青蛙专栏 1万+

VINS-Fusion实战:从零搭建无人机视觉SLAM系统(附ROS配置全流程)

本文详细介绍了如何从零开始为无人机搭建基于VINS-Fusion的视觉SLAM系统。内容涵盖硬件选型(重点推荐双目相机与IMU搭配)、ROS环境配置、传感器标定、核心参数调优以及实际飞行测试与问题排解全流程,旨在帮助开发者实现稳定、精确的无人机自主定位与导航。

wasm7browser的博客 214

PHP性能优化总结

1

yeyoushenlong_1999的博客 293

【01】VisionMaster入门到精通——VisionMaster V4.0.0 试用版安装教程(安装试用补丁与试用授权)

本文详细介绍了海康VisionMaster 4.0.0试用版的安装步骤:首先从官网下载基础安装包、软加密试用版和示例程序(可选);安装时需按顺序完成主程序安装(选择软加密)、试用补丁安装和30天试用授权安装;最后提供了两种启动方式。文章还列出了试用版的7项功能限制,包括最多支持2个流程、2个全局相机等,并特别提醒试用版不维护、不提供补丁,建议用户转为正式版本。安装过程中若出现蓝屏需重启覆盖安装,授权失败时可参考指定解决方案。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 8921

thinkcmf 代码执行 (CVE-2019-7580) 漏洞复现

所有文章,仅供安全研究与学习之用,后果自负! thinkcmf 代码执行 CVE-2019-7580thinkcmf 代码执行 (CVE-2019-7580)0x01 漏洞描述0x02 影响范围0x03 漏洞复现3.1 登录后台3.2 漏洞利用3.2.1webshell3.2 phpinfo3.3 获取系统命令0x04 漏洞修复 thinkcmf 代码执行 (CVE-2019-7580) 复现小心会搞崩环境。 0x01 漏洞描述 ThinkCMF是一款支持Swoole的开源内容管理框架(CMF),基于Thi

YouthBelief的博客 4264

PHP项目性能优化

PHP项目性能优化的三个层次 PHP语言层级 PHP周边(服务器,数据库,webserver) PHP底层 语言层级 尽量使用PHP原生函数和常量,类 如果要实现的功能有原生PHP函数,则不要自己用PHP实现 尽量使用性能更高的内置函数 比如isset和array_key_exists都可以使用,则使用isset 尽量不要使用错误抑制符@ 不要使用PHP处理cpu密集的业务,交

xiangyong882000的专栏 429

微信小程序 - 最新详细实现跳转打开第三方网站方法流程及示例代码,在小程序内直接打开H5页面或微信公众号文章后台业务域名配置及下载校验文件上传服务器,嵌入外部网站跳转第三方h5网页(详细配置及代码)

微信小程序,打开第三方网站,放校验文件,怎么配置业务域名,后台配置,怎么打开外部没有关联的网站,小程序直接打开公众号文章,指定页面,跳转第三方url,跳转到外部网站,小程序跳转到任意外部网页,网站链接,跳转到其他网页(外部链接),小程序嵌入外部h5链接,校验文件怎么放到对方服务器上,要跳转到网站没权限放过去,校验文件验证域名,把校验文件放到对面网站,别人的服务器也打不开没权限怎么放呢,勾选不校验合法域名,txt,打不开别人的网页怎么办,真机调试打不开,无法跳转,有什么其他办法不放校验文件吗,别人不可能同意,

🏆 前端领域优质创作者 1万+

PHP(四)——性能优化

之前基于PHP开发的过程中,一直没有涉及到PHP性能优化的问题,但是一般来说PHP性能问题占整个项目性能问题一般占30%-50%部分,所以说,这部分内容是非常重要的。下面是最近自己PHP性能优化学习的资料整理。 引言[1] PHP存在性能问题的情景? PHP语法使用不恰当 使用了PHP语言他不擅长做的事情 用PHP语...

cpongo7的专栏7 299

安装Codex时出现无法下载此应用和Microsoft Store初始化失败的解决方案

本文主要介绍了安装Codex时出现无法下载此应用和Microsoft Store初始化失败的解决方案,希望能对使用codex的同学们有所帮助。 文章目录 1. 问题描述 2. Windows 解决方案 3. Mac解决方案

weixin_43178406的博客 7万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

PHP性能优化小技巧

php是一种通用开源脚本语言。语法吸收了C语言、java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。 掌握PHP性能优化的小技巧     对于刚接触php的学员,这里我跟大家分享10条PHP性能优化的小技巧,帮助你更好的用PHP开发:   1. foreach效率更高,尽量用

zyj66666的博客 2460

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

PHP 性能优化安全一

1 不要随便就复制变量 有时候为了使 PHP 代码更加整洁,一些 PHP 新手(包括我)会把预定义好的变量复制到一个名字更简短的变量中,其实这样做的结果是增加了一倍的内存消耗,只会使程序更加慢。试想一下,在下面的例子中,如果用户恶意插入 512KB 字节的文字到文本输入框中,这样就会导致 1MB 的内存被消耗! BAD: $description = $_POST['descriptio

hn2002的专栏 1210

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

PHP的性能优化和调试

性能优化:优先代码和缓存优化,再调整服务器。监控工具如Blackfire.io可帮助分析瓶颈。调试:从错误报告入手,逐步使用Xdebug深入。确保开发环境详细日志,生产环境关闭错误显示。整体建议:定期进行压力测试(如Apache Bench),并遵循PSR标准编码。优化后,性能提升可达2-5倍。如果您有具体场景(如高并发API),我可以提供更针对性的建议!

busy0906的博客 1461

apache php 调优_性能优化之PHP优化

一、语言级性能优化(一)PHP 性能问题的解决方向PHP语言级别的性能优化 =》 PHP周边问题的性能优化 =》 PHP语言自身分析、优化1.压力测试工具 Apache Benchmark (ab)(1)测试工具基本介绍1). ab 是由 Apache 提供的压力测试软件,安装 apache 服务器时会自带该压力测试软件2). 基本使用[Linux 平台]./ab -n1000 -c100 htt...

weixin_39681171的博客 508
上一篇: jQuery中hover与mouseover与mouseenter的区别
下一篇: PDO防注入原理分析以及使用PDO的注意事项总结
Lankecms
博客等级 码龄15年 14粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值