• 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 6

    PHP7.0性能优化-学习笔记2

    Posted by 撒得一地 on 2015年9月6日 in PHP笔记
    国外稳定加速器推荐    Express | Vypr

    相关推荐:
    1.PHP7 NULL 合并运算符
    2.PHP7 太空船运算符(组合比较符<=>)
    3.PHP7 常量数组
    4.PHP7 匿名类
    更多:PHP7新特性教程

    优化一:zval使用栈内存

    在zend引擎和拓展中,经常要创建一个PHP的变量,底层就是一个zval指针。之前的版本都是通过MAKE_STD_ZVAL动态的从堆上分配一个zval内存,然后为这块内存赋值。而PHP7可以直接使用栈内存。

    在PHP5中: 
    
    zval *val;MAKE_STD_ZVAL(val);
    

    上面代码的含义是先申请一个zval指针名为val,然后动态创建一个内存并用val这个声明好的指针指向这块内存块。

    在PHP7中:
    
    zval val;
    

    上面代码的含义是:在栈上预分配一块内存来存放PHP变量。这样的好处是减少了多次内存分配的管理和操作,因为在php程序中一般会有大量的变量存在。

    优化二:zend_string存储hash值,array查询不再需要重复计算hash表中的key

    在php中,数组查询用的非常之频繁。在数组查询值的时候,这个key的值每次都要经过一次转换转成hash值,这是要经过复杂的计算过程的。而且,在php底层,不仅在数组这里有使用到hash转换,还包括类的属性和类的函数,都有用到hash转换。因此,cpu就要花费大量的时间去计算hash值。然而,在我们的程序中,比如数组中这些key的值又经常是不变的,但是每次用到都要重复的去计算。

    于是,在PHP7中干脆将这个hash值保存起来,避免后面要用到仍然重复去计算。PHP7为字符串单独创建了新类型叫做zend_string,除了char*指针和长度之外,还增加一个hash字段,用于保存字符串的hash值。因此数组键值查找时不需要反复去计算hash值??梢钥聪露ㄒ宓慕峁固宕耄?

    struct _zend_string {
          zend_refcounted gc;
          zend_ulong h;
          size_t len;
          char val[1]
    };	
    

    结构体的变量h就是用来存放计算过的hash值。

    欢迎转载,转载请注明出处://www.cfage.com/296.html

    标签:, , ,

    上一篇:

    下一篇:

    相关推荐

    6 Comments

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    6 + 2 = ?

    网站地图|广东快乐10分开奖直播

    Copyright © 2015-2019 广东快乐10分开奖直播 All rights reserved.
    闽ICP备15015576号-1,版权所有?psz.

  • 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 老挝磨丁赌场 足彩半全场怎么买 福彩3d和值表 体育彩票31选7开奖 南国彩票论坛图规 西双版纳彩票大奖 中国竞彩网竞彩足球 捕鱼来了 快乐十分技巧 江西新时时彩论坛 下载新疆时时彩开奖结果 手机版pk10缩水 任选9场买一倍多少奖金 排列3走势图2元网 中国老时时彩 时时彩走势图网易