質問するログイン新規登録

回答編集履歴

2

セル当たり使用遼について追記

2019/10/25 06:37

投稿

tacsheaven
tacsheaven

スコア13707

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

消費メモリ量を計算

2019/10/25 06:37

投稿

tacsheaven
tacsheaven

スコア13707

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 くらいは最悪で覚悟する必要がありますね。