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

phperwuhan的博客

记载一个phper的历程!phperwuhan.blog.163.com

 
 
 

日志

 
 

解决PHP数组内存耗用太多的问题  

2010-06-13 17:40:52|  分类: php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

来源:http://www.800home.cn/php/2010041671.html

一般来说,PHP数组的内存利用率只有 1/10, 也就是说,一个在C语言里面100M 内存的数组,在PHP里面就要1G。

特别是在PHP作为后台服务器的系统中,经常会出现内存耗费太大的问题。
    因为这个是语言的问题,常规方案比较难以解决。下面是一种通过string 解决的方案。
 
  1. $total = 100000;  
  2. $double = "";  
  3. for ($i = 0; $i < $total$i++)  
  4. {  
  5.     $double .= pack("d"$i + 0.1);  
  6. }  
  7.  
  8. for ($i = 0; $i < $total$i++)  
  9. {  
  10.     unpack("@" . ($i * 8) . "/d"$double);  
这个例子用一个string 保存一个double 的数组。然后在使用的时候unpack出来。
当然,这会影响性能。要看具体的需求。
 
比如这样的情况下:
你有10个数组,每个数组10M (1百万数据左右),那么十个要花费 100M内存。
再加上10个人并发的话,内存就会严重不够了。
然后,在10个数组,不是每次都同时使用的。你可以,把他们保存成string
然后,在使用的时候,unpack某一个string变成一个数组。
  评论这张
 
阅读(450)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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