linux下运行php,内存不断变大

Myprettygirl 2014-05-14 06:50:27
目前正在linux下跑一个文件,文件从数据库中读取所有的id,然后根据id循环生成静态页面。发现内存不断变大,当前文件所占内存已经2个G了。检查变量也没有任何问题,并且从页面中也能看出来,如果变量不断累加的话,后面的页面就会由于数据量变大而变形。有没有方法可以查看到是什么原因导致内存泄露?linux下有什么办法检测?
...全文
378 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ImN1 2014-05-15
  • 打赏
  • 举报
回复
我写长时间运行的代码,总会记得unset……
深圳phper 2014-05-15
  • 打赏
  • 举报
回复
生成的一个静态页面有多大。
xuzuning 2014-05-15
  • 打赏
  • 举报
回复
销毁不再使用的变量 尽可能的复用已存在的变量 处理时不要全部读取后再处理 而应该是边读取边处理
黄袍披身 2014-05-15
  • 打赏
  • 举报
回复
引用 7 楼 vgy12304 的回复:
在linux后端跑数据,建议不要用php,内存泄露是老问题,建议rebuy,perl,golang,c等能支持多线程的,效率高
ruby?
智商众筹 2014-05-15
  • 打赏
  • 举报
回复
一直对后台生成全部新闻静态html这种做法有很强烈的质疑... 一个是集中进行大量运算和硬盘IO对用户正常访问或多或少都有影响,另一方面如果页面略有改动难道那些老古董新闻也要全部翻出来过一遍? 我都是通过url重写,判断访问的新闻地址的真实html文件是否存在,如果没有就指向php先返回动态内容,立刻生成静态。想更新只需要删除存放新闻的文件夹,任意一篇新闻只要被访问一次就有静态html了。 跑题了...把可疑语句注释掉然后再跑一遍就可以观察了... 另外在别处博客看,据说unset只是切掉变量哈希值到实际内存的映射,=null才是释放内存
vgy12304 2014-05-15
  • 打赏
  • 举报
回复
在linux后端跑数据,建议不要用php,内存泄露是老问题,建议rebuy,perl,golang,c等能支持多线程的,效率高
傲雪星枫 2014-05-14
  • 打赏
  • 举报
回复
free -m 看看内存占用是used 还是 cached? 如果是cached大,只是linux会把已经分配的内存保留。当有需要时是会释放的。 如果是used,就要查看泄露的问题了。
linyoman 2014-05-14
  • 打赏
  • 举报
回复
id的数据是不是很多?可以一次生成20条,就像数据分页一样
黄袍披身 2014-05-14
  • 打赏
  • 举报
回复
你不停的在跑 你总是一个循环在执行吧?不是执行一个就重新开始,所以适当的释放掉那些内存变量看看。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧