CakePHP 3 でのメモリ使用量削減

CakePHP 3 でのメモリ使用量削減

岩佐 孝浩
岩佐 孝浩
1 min read
CakePHP

CakePHP 3 を使用して大量のレコードを処理する際には、高いメモリ使用量の問題に遭遇する可能性があります。 CakePHP 3 では、この問題を緩和するための設定が提供されています。

Result set objects will lazily load rows from the underlying prepared statement. By default results will be buffered in memory allowing you to iterate a result set multiple times, or cache and iterate the results. If you need work with a data set that does not fit into memory you can disable buffering on the query to stream results:

公式ドキュメントに記載されている通り、メモリ使用量を削減するには、以下のコードを追加してください。

$query->enableBufferResults(false);
// 3.4.0 or earlier
$query->bufferResults(false);
岩佐 孝浩

岩佐 孝浩

Software Developer at KAKEHASHI Inc.
AWS を活用したクラウドネイティブ・アプリケーションの要件定義・設計・開発に従事。 株式会社カケハシで、処方箋データ収集の新たな基盤の構築に携わっています。 Japan AWS Top Engineers 2020-2023