PHPで大量の文字列を扱う処理があった。

例えば、データをテキストファイルに出力するとかそうゆう類の処理。

処理的には、そんな難しくない。

自分は取得したデータをループさせながら、変数に追加していき、最終的にその変数を出力する、という処理を書いた。

しかし、以下の問題が発生した。

1.実行時間のタイムアウトが発生し、エラーが起きた。

2.処理がやたら遅い。

まず、1の対応。

これは実行時間の最大値を一時的に解除するコード(set_time_limit(-1);)を埋め込み、クリア。

次は2。

原因は変数に大量の文字列をセットしていたせいだった。

変数に追加するという部分を変数に追加せずに直接出力するように修正したら、処理がすごく早くなった。

2,3分かかってたものが一瞬で終わるようになった。

変数に大量の文字列をセットすることによって、メモリがすごく使われてた様子。

.netではそんなにメモリを意識して実装することなかったからなぁ。

今後も気をつけないとなー。

コメントを残す

メールアドレスが公開されることはありません。