注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

TOTO

Think and Be Different

 
 
 

日志

 
 

php中查找数组中是否存在某个元素的方法性能测试  

2009-12-03 11:36:12|  分类: 看看书 写写笔记 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
查找一个元素是否在数组中,一共有上面三种做法:
in_array
array_key_exists
array_search
对它们三个做了一个简单的测试:
在数组大小为10000的时候,查找一半数组大小的元素,即5000个
in_array consume time : 8.15333008766s
array_key_exists consume time : 0.0237729549408s
array_search consume time : 8.17325806618s

在数组大小为1000的时候,查找一半数组大小的元素,即500个
in_array consume time : 0.061774969101s
array_key_exists consume time : 0.00311708450317s
array_search consume time : 0.0466430187225s

从这里来看,在数据量不大的时候,比如小于1000,查找用哪一种都行,都不会成为瓶颈;
当数据量比较大的时候,用array_key_exists比较合适。
当然这里array_key_exists占用的内存比较大,经测算
数组结构是: array(1, 2, 3, ..)和 array(1 => true, 2 => false, ..)
他们内存使用比值为1:2;
这个和内部实现有关系,实际上在php中第一种和第二种的数据结构类似,都是关联数组。



  评论这张
 
阅读(1279)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017