就用这个常量值举动数组键值

 新闻资讯     |      2019-02-08 06:39

  在 PHP 中特别占内存的,这个由于 PHP 的底层的zend引擎引起的。

  当一个函数占用的栈空间不是很大的时候,这部分内存很有可能全部命中cache,CPU访问的效率是很高的。

  相反,如果一个函数同时使用全局变量和局部变量,当这两段地址相差较大时,cpu cache需要来回切换,效率会下降。

  建立一个对象属性(类里面的变量,例如:$this-prop++)比局部变量要慢3倍。

  建立一个未声明的局部变量,要比建立一个已经定义过的局部变量慢9-10倍。

  这种差异是PHP特有的,并不适用于其他语言,所以请不要修改你的C或Java代码,并指望它们能立即变快,没用的。

  ++$i更快是因为它只需要3条指令(opcodes),$i++则需要4条指令。

  牢记,这个优化处理不失为一个好主意,因为不是所有的指令优化器都会做同样的优化处理。

  有时候为了使 PHP 代码更加整洁,一些 PHP 新手(包括我)会把预定义好的变量,复制到一个名字更简短的变量中。

  试想一下,在下面的例子中,如果用户恶意插入512KB字节的文字,就会导致 1MB 的内存被消耗!

  当需要没有初始化的变量,PHP解释器会自动创建一个变量,但依靠这个特性来编程并不是一个好主意。

  如果一个函数既能接受数组,又能接受简单字符做为参数,那么尽量用字符作为参数。ag娱乐平台

  如果不带引号,例如$a[name],那么PHP会首先检查有没有define定义的name常量。

  如果有,就用这个常量值作为数组键值。如果没有,再查找键值为字符串name的数组元素。

  几乎所有的浏览器都支持Gzip的压缩方式,gzip可以降低80%的输出.

  Apache/Nginx解析一个PHP脚本的时间,要比解析一个静态HTML页面慢2至10倍。

  一般情况下,PHP脚本被PHP引擎编译后执行,会被转换成机器语言,也称为操作码。

  PHP加速器缓存了编译后的机器码,允许代码根据要求立即执行,而不经过繁琐的编译过程。

  这些是高性能的分布式内存对象缓存系统,能提高动态网络应用程序性能,减轻数据库的负担。

  这对运算码 (OPcode)的缓存也很有用,使得脚本不必为每个请求重新编译。

  江苏优就业,中公教育旗下IT培训品牌,欢迎每个想学习IT的小伙伴关注我们!!