当前位置:首页 > 日记 > 正文

浅谈PHP优化中应注意的地方

浅谈PHP优化中应注意的地方
当我们写程序时,我们总是想让自己的程序占用最小的资源,运行速度更快,并且有更少的代码。我们经常在同一时间失去了很多东西。接下来,我想谈谈我的理解PHP优化,优化的目的是改变的最快的运行速度和易维护的代码在最少的成本。

优化大型化,而不是与一些程序代码争

我这里所说的优化,基本上是从服务器,Apache,数据库优化这些方面,而不是在你的PHP代码加以改进,从而提高程序的运行速度,因为你将比用于字符串处理函数正则化方法以提高程序的运行速度,优化成本一个大的范围要比这小得多,得到的回报却丰富。

优化非代码有以下好处:

1,一般来说,它可以大大提高效率。

2,它并不危及代码的完整性。

三.可以快速部署

缓存技术

下面是常用的缓存技术,它们可以通过这些缓存技术大大提高效率。

当谈到缓存技术缓存已经被提到。memcached是一种高效、快速的分布式的内存对象缓存系统,它主要用来加速动态Web应用程序。

memcached的原则

memcached是一个或多个服务器守护进程的方式运行,等待接收客户端的连接操作,而客户端可以用多种语言(比如PHP),php在客户端建立与memcached服务连接后,下一步是访问对象,每个被访问的对象一个唯一的标识符,通过访问操作的关键,保存缓存对象实际上是放置在内存中,而不是存储在缓存中的缓存文件,为什么能如此快速有效的原因。

在这里是常见的缓存,缓存的方法

1、编写和操作码缓存

因为PHP是一种解释型语言,所以每个PHP运行时文件需要编译执行后,同样的文件,不同的用户在不同时间或同一用户访问同一个文件,每一次你需要重新编译和运行,所以它需要很多时间。

通过编译和缓存,每个文件在修改后只编译一次,从而减少了文件IO操作。用户访问后,机器指令直接从内存中取出并执行,而不是在硬盘中读取。

最常见的PHP编译缓存工具有:APC、加速器、XCache

2。全局页面缓存- Squid Cache

SQUID缓存(简称SQUID)是一种流行的免费软件(GNU通用公共许可证)代理服务器和Web缓存服务器。枪乌贼作为Web服务器的前端缓存服务器,通过缓存相关请求提高了web服务器的运行速度。

3,sql缓存本地缓存

在大多数应用程序中,主要的瓶颈常常可以追溯到数据库的操作。一般来说,由于复杂的数据库查询,会消耗大量的时间。SQL缓存可以大大减少复杂查询造成的负载。

SQL缓存实例(使用memcached扩展)

代码段:

复制代码代码如下所示:

$ = MD5(某种SQL查询);

如果(!($结果= memcache_get($关键))){

结果=美元美元PDO ->查询($ QRY)-> fetchall();

在一小时内缓存查询结果。

memcache_set($美元关键,结果,空,3600);

}
4,本地缓存的块缓存

为了优化PHP程序,有时我们必须优化一段代码,以减少一点执行时间,不同的PHP代码,而不是优化复杂,而不是通过缓存忽略这些优化代码,这样做的好处:

1,能快速看到效果。

2。它不会破坏以前的代码。

三.速度比代码的优化快得多。

一个代码块缓存Liezi(也用memcached伸展)

代码段:

复制代码代码如下所示:

功能complex_function_abc($,$,$ C){

关键__function__美元=。序列化

(func_get_args());

如果(!($结果= memcache_get($关键))){

$结果/函数代码

存储执行结果1小时

memcache_set($美元关键,结果,空,3600);

}

返回$结果;

}
当然,除了上述方法之外,文件缓存还可以用于在数据库中提取和存储数据,也可以生成静态HTML文件。然而,这些方法缓存或存储硬盘上的文件而不是内存。

输出控制

除了上述缓存技术之外,程序还可以用较少的时间执行输出控制。

下面是PHP和Apache谈论输出控件

1,PHP输出控件

这里是ob_start最重要的使用()和PHP的OB系列功能。这些功能能起什么作用

第一种是静态模板技术,所谓静态模板技术在某种程度上使用户位于PHP页面生成的HTML页面的客户端,如果HTML页面没有更新,那么当另一个用户再次访问该页面时,该程序将不再调用PHP和相关数据库。对于一些比较大的信息网站,如新浪、163、搜狐。这种技术的好处是非常巨大的。

代码示例:

复制代码代码如下所示:

< PHP

(ob_start) / /打开缓冲区;

>
PHP页面的所有输出

复制代码代码如下所示:

< PHP

$content = ob_get_contents(PHP); / /把所有内容页输出

$ FP = fopen(output.html,W); / /创建一个文件,并打开,准备写

fwrite($ FP,$content); / /把PHP页面写所有的output.html,然后......

Fclose($ FP);

>
当然,这个OB系列函数,还有很多其他用途我在此不解释。

2,Apache输出控件

设置发送缓存区的大小为一个页面大小允许你把页面立即发送缓冲区来提高处理速度。

指令的发送缓存区的大小

说明:TCP发送缓冲区大小(字节)

语法:发送缓存区的大小字节

默认值:发送缓存区的大小0

作用域:服务器配置

状态:MPM

模块:BeOS,mpm_netware,mpm_winnt,mpmt_os2,prefork,工人

该指令集的大小(字节)的服务器的TCP发送缓冲区,增加这个值可以带来两个后果:高速度和高延迟(约100ms)。如果设置为0

通过源代码编译您的数据库,使您的程序可以将速度提高10到15%。

下面说你应该注意代码优化

1。短代码不等于快代码。

许多人在编写程序时想要编写更简洁的代码,但更短的代码有时需要更长的执行时间,所以即使他们使用更多的代码,也不会使用慢代码。

2。编写程序时,要注意程序的可扩展性,而不是速度的追求。

三.在优化代码之前,先看看数据库的一部分,因为大多数应用程序瓶颈都在数据库中而不是代码中。

4、微观优化不值得损失。

所谓的微优化,而不是字符串函数,就像正则表达式的前一部分:

(1)这需要很长时间。

(2)它不会解决你的性能问题。

(3)可以销毁以前的代码以产生未知的错误。

(4)付出多于回报

还有一个错误要提。有些人采取的优化考虑,为了使程序更加优化和分析业务逻辑,从而改变业务逻辑,为了得到更好的代码。这是一个很愚蠢的想法,因为一个程序的目的是为了解决所遇到的现实问题,而这些问题,所以我们怎么能本末倒置

PHP优化是一个永恒的话题。如果我们想得出一个全面的结论,那就不太现实了。这里只是一些个人经历,这些并不总是正确的。

相关文章

AdobeIllustratorCS6的新功能和增

AdobeIllustratorCS6的新功能和增

新功能,增强,功能,电脑软件,Adobe Illustrator CS6的新功能和增强功能的介绍,希望能对你有帮助 由于Illustrator CS6的新版本,也得到了释放,虽然官方中文版还未上市,网上下载链接已经无处不在。我不是说软件必须使用一个新的版本要赶上潮流,但版…

UEditor编辑器上传的跨域解决方案

UEditor编辑器上传的跨域解决方案

跨域,编辑器,上传,解决方案,电脑软件,解决方案: 1。document.domain =根域名是在UEditor internal.js添加对话框; 2。在当前页上还指定根域名: 复制代码代码如下所示: document.domain = 域名根; 这不是一个问题,Chrome和Firefox,但在IE中,你需…

33ICE和ICE字体排序推荐下载(个人和

33ICE和ICE字体排序推荐下载(个人和

推荐,字体,排序,下载,电脑软件,昨天在微博上推荐了一个雪花笔刷后,人们问起了与雪花相关的字体!答案是肯定的。好的,兄弟,去搜索。我给你推荐33种冰雪字体。你可以把它们捡起来。我希望你能在评论中分享你的意见。谢谢。 01冬片(只有个人) 02 Sno…

Dreamweaver使用表格来美化网页,从

Dreamweaver使用表格来美化网页,从

网页,实例教程,表格,电脑软件,Dreamweaver,当浏览网页,我们可以发现许多形式用于网页排版美化。这些表格不仅发挥版面排版的作用,而且在很大程度上美化了网页,使网页看起来更加美观新颖。 当浏览网页,我们可以发现许多形式用于网页排版美化。…

PS图象处理软件使用过滤器来进行超

PS图象处理软件使用过滤器来进行超

图象处理,软件使用,空间,过滤器,特殊效果,本文主要介绍了PS图象处理软件使用过滤器,使超三维空间的特殊效果。这个教程并不复杂,你喜欢的朋友可以一起学习。 最后的结果: 1、首先,创建一个新文件,选择滤镜-渲染-云彩,,命令,继续执行Ctrl + F命令直…

一种基于CSS3动画按钮的代码教程

一种基于CSS3动画按钮的代码教程

教程,动画,按钮,代码,电脑软件,在你分享了很多实用的按钮纯CSS3实现。今天,给你一个CSS3动画按钮。这是很好的互动,和你需要的朋友可以参考一下。 在你分享了很多实用的按钮纯CSS3实现。今天,给你一个CSS3动画按钮,结果如下: 实现的代码。 HTML…

CSS3实例教程一个圆形的导航菜单纯

CSS3实例教程一个圆形的导航菜单纯

导航菜单,实例教程,电脑软件,今天我们要给你一个纯CSS3实现圆形的导航菜单导航是新鲜的,列表图标在中间,当列表图标点击,它们分布在表图。形成一个环,和当前的代码如下 在你介绍了几个导航菜单,我们要给你一个纯CSS3圆形的导航菜单,导航是新鲜的,…

javascript()函数使用详细解决方案

javascript()函数使用详细解决方案

解决方案,函数,详细,电脑软件,javascript,参数描述 回调函数:在每个数组元素上执行的回调函数。 这个对象:这个对象定义的回调函数执行时。 功能描述 数组中的每个元素都执行指定的函数(回调),直到函数返回true为止。如果找到,有些会返回真的…

将科学计数方法转化为原始数字串的

将科学计数方法转化为原始数字串的

方法,转化为,字串,原始,科学,本文介绍了PHP实现方法,将科学计数方法转换为原始数字字符串,供大家参考。 具体实现代码如下: 复制代码代码如下:功能numtostr($num){ 如果(stripos($num,e)= = = FALSE)返回的值; 为民=装饰(preg_replace( / { = } / ',…

在DataGrid控件和repeader更换标识

在DataGrid控件和repeader更换标识

标识,方法,控件,电脑软件,DataGrid,在更换标识值在DataGrid控件的使用: 直接调用后台方法: 公共字符串GetTransType(对象) { 字符串type_flag = convert.tostring(obj); 字符串strreturn = ; 开关(type_flag) { 例1:strreturn =工厂的产品;打破; 例2:st…

JSP页面支持通过视图缩放手机

JSP页面支持通过视图缩放手机

视图,缩放,支持,页面,电脑软件,加入标签 一个属性的含义: 宽度的宽度 高度的高度:视口 初始尺度的初始比例:— 最小规模:允许用户对最小比例进行缩放 最大规模:允许用户缩放最大规模 用户是否可伸缩:用户可以手动缩放…

PS教你成为一个好的大众标志

PS教你成为一个好的大众标志

教你,成为一个,标志,电脑软件,PS,本教程将向您展示如何使用图层样式、径向渐变工具和多边形套索工具来描述质量的传奇符号。 一个好的大众罗,这是它的方式! 本教程将向您展示如何使用图层样式、径向渐变工具和多边形套索工具来描述质量的传奇…