私はPHPで長時間実行されている操作をしており、常にメモリ不足でクラッシュしました。なぜこのPHP関数のメモリリーク
だから私はとメモリ使用量のログを開始しました:私はすべての私のラムを食べに責任を「有罪」1を、見つけたコードの一部をコメントすることで
$result = memory_get_usage()/1024;
echo $result;
。
これはコードです:
static private function from_camel_case($str)
{
$str[0] = strtolower($str[0]);
$func = create_function('$c', 'return "_" . strtolower($c[1]);');
$result = preg_replace_callback('/([A-Z])/', $func, $str);
return $result;
}
それは基本的にアンダースコアと小文字にキャメルケースにテキストを変換します。
なぜこのリークですか?
私はあなたが何度もそのコードを呼び出している場合は、再び問題がこのラインである私のMac OS Xのライオン
'preg_replace'を使用して、大文字で始まる文字の前に' _'を付けてから、文字列全体に 'strtolower'を適用します。コールバックの使用や関数の作成を防ぐ – zerkms
**メモリがリークしているわけではありません。メモリがどこに使われているのか分かりません。答えを見てください。 – salathe