+ -
当前位置:首页 → 问答吧 → 一个可以替代PHP数组的扩展

一个可以替代PHP数组的扩展

时间:2011-03-26

来源:互联网

本帖最后由 liexusong 于 2011-03-26 11:14 编辑

因为PHP的数组是使用哈希表的, 所以内存使用比较大, 所以我用红黑树来写了一个dict的结构, 内存使用比PHP的数组少一半以上, 查询速度基本上跟PHP的数组相当, 不过插入速度稍微慢PHP的数组一点.

慢的原因可能是:
1. PHP的数组不用去全局方法表中寻找方法调用, 而扩展函数要去全局的方法表寻找.
2. 红黑树的插入操作比较复杂, 哈希表比较简单, 所以时间稍多一点.

如果内存不足, 而且又想速度快的话, 这个扩展是一个很好的选择

http://code.google.com/p/php-dict/

扩展的使用:
  1. $memory1 = memory_get_usage(TRUE);

  2. $dict = dict_new(); //创建一个字典

  3. for ($i = 0; $i < 100000; $i++) {
  4.     dict_insert($dict, $i, "value:$i");//插入数据到字典
  5. }

  6. $start = explode(' ', microtime(TRUE));
  7. $start = $start[0] + $start[1];

  8. echo 'value is ', dict_lookup($dict, 1000);//搜索元素

  9. $close = explode(' ', microtime(TRUE));
  10. $close = $close[0] + $close[1];

  11. dict_destroy($dict);

  12. $memory2 = memory_get_usage(TRUE);

  13. echo '<br/>processed time: ', ($close - $start), '<br/>used memory: ', ($memory2 - $memory1);
复制代码

作者: liexusong   发布时间: 2011-03-26

意义不大啊,这样搞起来改动的东西太多了,语法都不一样。

作者: maochanglu   发布时间: 2011-03-26