回答編集履歴
2
セル当たり使用遼について追記
answer
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PHP 内で Excel を作成して、それをダウンロードさせている、のですよね?
|
|
2
2
|
|
|
3
3
|
おそらく PhpSpreadsheet を使っているかと思いますが、あれは結構豪快にメモリを食います。
|
|
4
|
-
詳しくは[公式サイト](https://phpspreadsheet.readthedocs.io/en/latest/topics/memory_saving/)にありますが、1cell あたりざっくり 1KB
|
|
4
|
+
詳しくは[公式サイト](https://phpspreadsheet.readthedocs.io/en/latest/topics/memory_saving/)にありますが、1cell あたりざっくり 1KB(セルに最大の255文字突っ込んだ場合)食いますので、それなりに広いエクセルファイルだと内部的なメモリはかなり使っていると思われます。
|
|
5
5
|
さらに Cell, Worksheet, Workbook といったオブジェクトの階層構造が複雑であるため、メモリの解放がうまくいかない、という宿痾があります。
|
|
6
6
|
※ので、強制的に行う方法が提示されています
|
|
7
7
|
|
1
消費メモリ量を計算
answer
CHANGED
|
@@ -3,4 +3,8 @@
|
|
|
3
3
|
おそらく PhpSpreadsheet を使っているかと思いますが、あれは結構豪快にメモリを食います。
|
|
4
4
|
詳しくは[公式サイト](https://phpspreadsheet.readthedocs.io/en/latest/topics/memory_saving/)にありますが、1cell あたりざっくり 1KB 食いますので、それなりに広いエクセルファイルだと内部的なメモリはかなり使っていると思われます。
|
|
5
5
|
さらに Cell, Worksheet, Workbook といったオブジェクトの階層構造が複雑であるため、メモリの解放がうまくいかない、という宿痾があります。
|
|
6
|
-
※ので、強制的に行う方法が提示されています
|
|
6
|
+
※ので、強制的に行う方法が提示されています
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
60000行×20列だと
|
|
10
|
+
20*60000 = 1200000KB = 1171.875MB = 1.14441 GB くらいは最悪で覚悟する必要がありますね。
|