PHP 共有メモリについて
PHPのページを作っているのですが、しばらくするとOut of memoryエラーが出ます。
共有メモリを使用しているので、それが原因ではないかと思い、
下記PHP、HTMLのようにしたらOut of memoryエラーが再現しました。
Out of memoryエラーが発生しなくするにはどうしたらいいでしょうか?
■PHP
<?php
for($i=1;$i<=30;$i++){
$id=shmop_open($i,"c",0666,32*1024*1024);
$str=shmop_read($id,0,32*1024*1024);
$lpc=0;
if(strlen($str)!=0){
$lpc=intval($str)+1;
}
$len=shmop_write($id,$lpc,0);
shmop_close($id);
}
echo $lpc;
?>
■HTML
<html>
<head>
<meta charset="utf-8" />
<title>a</title>
<script>
onload=function(){
lp();
}
function lp(){
document.ifn.location.href="a.php";
}
function ifl(){
setTimeout("lp()",200);
}
</script>
</head>
<body>
<iframe name="ifn" onload="ifl();"></iframe>
</body>
</html>
■事象
最初のうちは、iframeでカウントアップされるのですが、しばらくすると
Fatal error: Out of memory (allocated 34340864) (tried to allocate 33554433 bytes) in・・・on line 7
とでます。
さらに放置すると、0からカウントアップされる・・・を繰り返します。
■環境
apache2.2
PHP5.3
memory_limitは128Mにしてあります。
お礼
参考になりました。回答ありがとうございます。