草庐IT

PHP 5.3.5 PDO FETCH_OBJ 内存泄漏?

我目前正在开发一个使用PDO的PHP应用程序。我正在编写一个读取CSV文件的导入,检查数据库中的记录,然后更新、删除等....我注意到此脚本使用的内存似乎非常高,这似乎与我执行查询的方式有关。请参阅下面的示例查询,该查询针对CSV中的每一行执行:$qry="SELECT*FROMcompanyWHEREid=1";$sth=$this->prepare($qry);$sth->execute();$sth->setFetchMode(PDO::FETCH_INTO,newCompany());$sth->fetch();对于上面的memory_get_peak_usage()=6291

php - 多次访问时是否值得将对象属性保存到变量中?

特别是在wordpress中,我想知道:将$post->ID从循环访问多次时保存到$post_id变量中是否有意义?我的意思是:$post_id=$post->ID然后在函数中需要时总是调用$post_id。我基本上发现自己一直在这样做,因为在javascript中可以节省内存。但在这个php/wordpress上下文中也是如此吗? 最佳答案 在现代PHP中,添加$post_id变量几乎不会影响内存,如果它只是循环读取的话。这两个变量的值在一个内存位置被引用,直到您修改其中一个变量,此时PHP将其复制到内存中两个不同的位置。这是re

php - 如何在 PHP 中调试 "Fatal error: Allowed memory size of xxx bytes exhausted"

调试“fatalerror:允许的268435456字节内存大小耗尽”错误的最佳策略是什么?我得到的这个错误很奇怪,显然有什么地方不对劲。导致它的功能是/***FlushalloutputbuffersforPHP5.2.**Makesurealloutputbuffersareflushedbeforeoursingletonsourdestroyed.**@since2.2.0*/functionwp_ob_end_flush_all(){$levels=ob_get_level();for($i=0;$i我只是重新设置了我正在处理的一些代码的基础,并开始使用它。你调试这个的策略是

尽管未达到内存限制,但 PHP 内存已耗尽

我目前正在调试php脚本。我将memory_limit设置为64M,它证实了这一点:ini_set("memory_limit","64M");echo"startingscriptwith".ini_get("memory_limit")."Bytesofram\n";\\64但是脚本仅使用20M就中断了,给出了标准的内存耗尽错误。Fatalerror:Allowedmemorysizeof20971520byteexhausted有没有可能是我没有想到的?也许Apache正在为PHP设置一些东西? 最佳答案 更好地尝试无限内存:

PHP exec() 使用内存

我似乎找不到这个问题的明确答案。当从PHP使用exec()调用shell命令时,shell命令使用的内存是否计入PHP脚本给定的内存限制?我意识到,如果该命令生成大量输出,并且该输出在exec()的$ouput(第二个)参数中捕获,则返回数据可能会破坏PHP内存限制。但是,假设所有输出都发送到一个文件,如果exec()命令需要128M的内存才能运行,那么一个限制为64M内存的PHP脚本是否能够运行它?/dev/null2>&1');我假设PHP5.3+ 最佳答案 exec()命令不直接计入PHP,因为该进程是单独执行的,而不是在PH

PHP memory_get_usage 大于 memory_limit

我的PHP应用程序运行速度有点慢,目前它的内存效率不是很高。我的整个服务器经常宕机,我想我应该怪这个应用程序。我想我会监控内存使用情况并检查我有多少限制:echo'Memoryinuse:'.memory_get_usage().'('.memory_get_usage()/1024.'M)';echo'Peakusage:'.memory_get_peak_usage().'('.memory_get_peak_usage()/1024.'M)';echo'Memorylimit:'.ini_get('memory_limit').'';这显示了以下内容:Memoryinuse:62

php - 最好不要将 &$ 与大字符串一起使用以节省内存吗?

所以我想知道,努力在一个非常繁忙的服务器上节省一些宝贵的内存分配。如果在编译最终输出时我的程序周围有大约1-5mb的字符串,那么通过引用明确地传递它们是否更好?这会不会节省内存?所以基本上问题是:在内存方面哪个更好,A或B是否值得付出努力?答:functionsomething($whoa){$whoa.='bar';return$whoa;}$baz='foo';$baz=something($baz);echo$baz;乙:functionsomething(&$whoa){$whoa.='bar';}$baz='foo';something($baz);echo$baz;

php - Apache 崩溃 : Cannot allocate memory

我遇到了一个反复出现的问题,为什么我的ubuntu服务器在过去两天大约在同一时间变得不可用。在崩溃期间,我什至无法通过SSH连接到它。Ubuntu服务器在amazonawst2.micro实例上,运行在1gbram上,Ubuntu16.04apache错误日志如下所示[WedAug3018:02:23.7100722017][autoindex:error][pid7505][client60.191.38.77:57957]AH01276:Cannotservedirectory/var/www/html/:NomatchingDirectoryIndex(index.html,in

domdocument - PHP 命令行脚本忽略 php.ini 和 ini_set ('memory_limit' ,...) 指令

我面临常见的“fatalerror:内存不足(已分配30408704)(已尝试分配24个字节)...”PHPfatalerror。通过Apache提供的页面没有表现出这种行为。我试过以下方法:将php.ini中的memory_limit增加到一个更大的值。通过调用ini_set('memory_limit',-1),ini_set('memory_limit','-1'),在脚本中增加memory_limit>ini_set('memory_limit',100000000),ini_set('memory_limit','128M')等unset()清除不需要的数组和对象以鼓励垃圾收

php - SplFixedArray::fromArray - 与 native 固定数组一样高效的内存? PHP 5.3.5

我正在试验SplFixedArray。我用动态数组完成了一些工作,我试图将其转换为内存效率更高的固定数组(有限的RAM可以使用)。阅读一些PHP文档,在标题中找到该函数并继续仅应用于如下数组:$array[x][y]['field'](以字符串为索引的3d数组,在固定数组中是不可能的)通过做$testArray=SplFixedArray::fromArray(generateArray(256));//generateArrayisafunctiontocreatethearrayandsetittozero.我检查了我是否可以从这个与标准数组相比节省一些内存,但没有。用数字替换字符