PHP 5.3新版特性浅析

从php4到php5,从个人框架到开源框架的发展,见证着php从山寨走上正规大军的发展。php6还在酝酿中,相信php5会作为php6小试牛刀的场地。php5.3是php5的一个里程碑,加入了大量新特性。

我个人总感觉php功能是越来越多了,但是php的语法却越来越丑陋了,有时加入了新功能,而新功能带来了问题,为了修复问题,又要加入新的语法来修复,郁闷。估计php用语法修复问题是为了更好的解析。

一、mysql驱动mysqlnd

一直以来,php都是通过mysql客户端连接mysql,而现在mysql官方已经推出php版的mysql客户端,而这个mysqlnd有效降低内存的使用以及提高性能。具体可以看:

http://dev.mysql.com/downloads/connector/php-mysqlnd/

http://forge.mysql.com/wiki/PHP_MYSQLND

从图中可以看出,使用mysqlnd少了从mysql驱动中复制数据到php扩展这一步。mysqlnd使用copy-on-write,也就是写时复制,读引用。

mysqlnd已经内置在php5.3的源码中,编译的时候使用--with-mysql=mysqlnd、--with-mysqli=mysqlnd
和 --with-pdo-mysql=mysqlnd 安装mysqlnd驱动。

mysqlnd的优点

编译php更方便了,不需要libmysql,已经内置在源码中

  1. 编译php更方便了,不需要libmysql,已经内置在源码中

  2. 使用php许可,避免版权问题

  3. 使用php的内存管理,支持php内存限制(memory_limit)

  4. 所有数据在内存只有一份,之前的libmysql有两份,参考上图

  5. 提供性能统计功能,帮助分析瓶颈

  6. mysqli支持长连接(persistent
    connections)

  7. 性能绝对比libmysql要快

  8. 在驱动层增加缓存机制

看了这么多特点,有点矛盾,作为数据库抽象层的PDO能把不同后端的特点发挥出来吗?如果使用mysql作为数据库的话mysqli是不是更好的选择?我总觉得mysqli只是个过度产品,PDO才是未来的。

二、性能提高

  1. md5(长春九龙男科医院)大概提高了10%-15%的性能

  2. Better stack
    implementation in the engine,没明白

  3. 常量保存在ROM里(Constants moved
    to read-only memory),这里没明白意思

  4. 改进异常处理,操作码(opcode)更简洁

  5. 解决了include(require)_once重复打开的问题,之前once我都是用静态变量实现的,终于解决这个问题了

  6. 用gcc4编译的二进制文件将更小

  7. 整体性能提高了5%-15%

很多人觉得web的瓶颈在db,所以app应用的性能毫不在乎,我认为主要是因为app扩展比db扩展要容易得多,所以才会产生db瓶颈,但这并不意味着可以不顾虑app的性能,毕竟最终还是要在app里解决各种问题的,作为一名程序员编写高质量的代码是最基本的要求。程序的内存使用量少点和执行速度快点,在高并发下是有很效果的,有些时候你改动下实现方法,能提高几十倍也很正常,当然如果付出要很多收获很少的时候就不要太执着了,我觉得一定要有编写高质量代码的意识。

时间: 2024-10-24 06:46:01

PHP 5.3新版特性浅析的相关文章

Java8新特性浅析

欢迎阅读我编写的Java 8介绍.本教程将带领你一步一步地认识这门语言的新特性.通过简单明了的代码示例,你将会学习到如何使用默认接口方法,Lambda表达式,方法引用和重复注解.看完这篇教程后,你还将对最新推出的API有一定的了解,例如:流控制,函数式接口,map扩展和新的时间日期API等等. 允许在接口中有默认方法实现 Java 8 允许我们使用default关键字,为接口声明添加非抽象的方法实现.这个特性又被称为扩展方法.下面是我们的第一个例子: 1 2 3 4 5 6 7 interfac

H5 特性浅析小结

HTML5是万维网的核心语言.标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改,为了顺应整个互联网时代变迁,使得人们能够以更好的方式去进行网页结构搭建,HTML5应运而生.为了更好地处理今天的互联网应用,HTML5添加了很多新元素及功能,比如: 图形的绘制,多媒体内容,更好的页面结构,更好的形式 处理,和几个api拖放元素,定位,包括网页 应用程序缓存,存储,网络工作者等. HTML5新增了如下几个方面你的特性: 一.语义特性 对HTML结构语义化的好处: 1,这样有利于S

CentOS 7.0 新版特性之命令更新

查看系统版本信息#uname -a #cat /etc/redhat-release 升级所有包,改变软件设置和系统设置,系统版本内核都升级#yum -y update升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变#yum -y upgrade CentOS7中主机名的配置文件发生了改变,不再是/etc/sysconfig/network,更改/etc/hostname才会生效#vi /etc/hostname DNS除了修改/etc/resolv.conf,还可以在网卡中直接设

nodejs POST加号变成了空格

今天在写post的时候,post的数据是用加号拼的一个字符串然后在服务上我要split分成数组可是怎么也没有成功 然后我打印出字符串竟然没有+号了,变成空格了 我还以为是+写成什么特殊的显示不出来了呢 我直接服务客户端的+号,还是不行 实在没办法了,这时我想看看这到底试什么字符charCodeAt显示这字符的ascii码,是32是空格呢,怎么转化了啊 post上来的试json格式我第一个想到的是json对+有特殊意义,网上查了没什么 后来发现urlencode什么的会转化掉 这时我才想到我在接受

jeecg 3.7.1 新版功能,集群定时任务动态发布模块 使用规则

jeecg 3.7.1  集群定时任务动态发布模块 使用规则 新版特性:    支持集群定时任务,支持分布式. 菜单路径: 系统监控-->定时任务 字段说明: 任务ID.任务说明:自定义即可 cron表达式: 定义任务触发的时间规则.提供一个在线生成cron的地址,http://cron.qqe2.com/ 任务类名: 执行定时任务的业务类,实现org.quartz.Job接口,任务触发时系统自动执行execute方法.格式:包名.类名,举例:com.mypackage.ClassName 执行

几何画板最新版信息与特点|Sketchpad几何画板5.06最新版操作技巧及下载链接

几何画板又称Sketchpad,是一款非常实用的数学物理通用的教学软件,为用户提供丰富而方便的创造功能使用户可以随心所欲地编写出自己需要的教学课件,是最出色的教学软件之一.该软件主要以点.线.圆为基本元素,通过对这些基本元素的变换.构造.测算.计算.动画.跟踪轨迹等,构造出其它较为复杂的图形,从而编写出合适自己的教学课件,是数学,物理教学中强有力的工具.软件提供充分的手段帮助用户实现其教学思想,只需要熟悉软件的简单的使用技巧即可自行设计和编写应用范例,范例所体现的并不是编者的计算机软件技术水平,

Linux内

body { font-family: @楷体; font-size: 11.5pt; line-height: 1.5; } html, body { color: black; background-color: #E0D1DE; } h1 { font-size:1.5em; font-weight:bold; } h2 { font-size:1.4em; font-weight:bold; } h3 { font-size:1.3em; font-weight:bold; } h4 {

Android 上千实例源码分析以及开源分析

Android 上千实例源码分析以及开源分析(百度云分享) 要下载的直接翻到最后吧,项目实例有点多. 首先 介绍几本书籍(下载包中)吧. 01_Android系统概述 02_Android系统的开发综述 03_Android的Linux内核与驱动程序 04_Android的底层库和程序 05_Android的JAVA虚拟机和JAVA环境 06_Android的GUI系统 07_Android的Audio系统 08_Android的Video 输入输出系统 09_Android的多媒体系统 10_

新一代 Tor发布,它牛在哪里?

知名匿名搜索引擎Tor,最近发布了基于火狐浏览器45-ESR的6.0版本,增强了对HTML5的支持,并更新了用来保护加密流量及其更新机制的安全功能.火狐45-ESR版本的全称为Firefox Extended Support Release,即延长支持版,是火狐官方专门为那些无法或不愿每隔六周就升级一次的用户而打造的,升级周期为42周,而普通火狐浏览器的升级周期为6周.同时延长支持版只会提供安全更新,不会引入新版特性. 有很多人都对澳大利亚版本的火狐浏览器嗤之以鼻,其中就包括45-ESR 这个版