PHPExcel のメモリ リークの問題
1. PHPExcel を使用して Excel ドキュメントを生成すると、メモリの枯渇を避けるために、大きなデータを複数の小さな Excel ドキュメントに分割して保存する必要がある場合があります。
?
ただし、PHPExcel には循環参照があります (最新バージョン 1.6.5 でもこの問題はまだ解決されていないようです)。 http リクエスト プロセス中に、PHPExcel および PHPExcel_Writer_Excel5 オブジェクト インスタンスが繰り返し構築され、複数の Excel が完成します。 ドキュメント生成操作の場合、構築されたすべてのオブジェクト インスタンスを http リクエストの終了前に解放できず、メモリ リークが発生します。 。
2. 解決策は、PHPExcel_Worksheet クラスにメソッドを追加することです?
public function Destroy(){ foreach($this->_cellCollection as $index => $dummy) { $this->_cellCollection[$index] = null; } }
public function Destroy() { foreach($this->_workSheetCollection as $index => $dummy) { $this->_workSheetCollection[$index]->Destroy(); $this->_workSheetCollection[$index] = null; } }