开发者社区> 问答> 正文

php5.3开启 gc_enable() ,是不是可以写常驻内存的daemon程序了?:报错

<?php gc_enable(); while(true){  ..... }

展开
收起
kun坤 2020-06-09 11:23:28 565 0
1 条回答
写回答
取消 提交回答
  • 你不说我倒是不清楚。。。你说了下。。。我去看了下php的doc

    gc_enable — Activates the circular reference collector 应该是这样。php的gc用的是引用计数。。。但是这个方法存在一个循环的问题。。。好像是php5.3后搞了一个策略来解决这个问题。。。这个方法应该是打开了这个策略。。。php还是不要写常驻了吧。。。不过你写也可以。。。写了看效果如何,最好能给大家分享下。。。谢谢 ######php的确是可行的, 只是暂时没有这样的扩展提供,或是案例比较少,下面的应用层面的开发者人不敢这样去做,毕竟像我们这边的人必须是要有一个领头羊去这样做了,我们才敢照着别人的步骤去做事. 谁说只能java和c++才能做服务了.只是PHP在web这块比较出名,而且也比较成功.很多情况都忽略了后台服务这块.######那麻烦兄弟写个扩展实现一下 php 的  cron 吧, 羡慕 Java的 Quartz 呀 ######最好不要这样,内存泄漏会搞死你的。######似乎没听说过类似的尝试,我觉得 lz 可以先测试一下,收集内存使用率数据。 http://www.php.net/manual/zh/features.gc.performance-considerations.php ######跑了一个长脚本,内存不够挂掉了。研究一下午还是无法组织PHP使用内存的增长,脱力啊,求指点。######回复 @yak : 想写多复杂就可以多复杂,架构这东西看人的,不是看语言...######回复 @Liuxd : php还有复杂的框架?######回复 @yak : gc_enable()作用就是开启zend.enable_gc。而这个配置默认就是开启的。另外我也用gc_enabled()查看过了,返回true。gc_enable()+gc_collect_cycles()对我的脚本没任何帮助,因为是在一个比较复杂的框架内使用,可能依赖关系不容易扯清除,所以GC效果不大好。不过还是多谢兄台热心帮助了。######回复 @Liuxd : <?php gc_enable(); while(true){ ……。 $MEM= memory_get_usage(); file_put_contents("MEM.txt","\n".$MEM,8); } 然后把mem.txt 导出到excel里面,看看数值有什么变化######回复 @Liuxd : 没开启你玩个鸟
    2020-06-09 11:23:34
    赞同 展开评论 打赏
问答分类:
PHP
问答地址:
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-深入浅出网络编程与swoole内核-吴镇宇 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载