一个可以替代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/
扩展的使用:
复制代码
因为PHP的数组是使用哈希表的, 所以内存使用比较大, 所以我用红黑树来写了一个dict的结构, 内存使用比PHP的数组少一半以上, 查询速度基本上跟PHP的数组相当, 不过插入速度稍微慢PHP的数组一点.
慢的原因可能是:
1. PHP的数组不用去全局方法表中寻找方法调用, 而扩展函数要去全局的方法表寻找.
2. 红黑树的插入操作比较复杂, 哈希表比较简单, 所以时间稍多一点.
如果内存不足, 而且又想速度快的话, 这个扩展是一个很好的选择
http://code.google.com/p/php-dict/
扩展的使用:
- $memory1 = memory_get_usage(TRUE);
-
- $dict = dict_new(); //创建一个字典
-
- for ($i = 0; $i < 100000; $i++) {
- dict_insert($dict, $i, "value:$i");//插入数据到字典
- }
-
- $start = explode(' ', microtime(TRUE));
- $start = $start[0] + $start[1];
-
- echo 'value is ', dict_lookup($dict, 1000);//搜索元素
-
- $close = explode(' ', microtime(TRUE));
- $close = $close[0] + $close[1];
-
- dict_destroy($dict);
-
- $memory2 = memory_get_usage(TRUE);
-
- echo '<br/>processed time: ', ($close - $start), '<br/>used memory: ', ($memory2 - $memory1);
作者: liexusong 发布时间: 2011-03-26
意义不大啊,这样搞起来改动的东西太多了,语法都不一样。
作者: maochanglu 发布时间: 2011-03-26
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28