作者mesak (阿米)
看板PHP
標題[請益] 變數造成記憶體不足
時間Wed Jul 13 10:08:38 2011
請問一下
我的寫法是 把資料都丟到一個變數中
然後在 一次 ECHO 出來
這樣造成記憶體不足
有個客戶樹狀分類開了 四五百個,變數撐不下去就直接白畫面....
這樣有辦法解決嗎? 除了記憶體開大一點之外....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 112.105.106.143
1F:→ kuAIpAI:我目前還沒有遇過 宣告變數造成的這種問題 可以在敘述清楚 07/13 10:40
2F:→ kuAIpAI:通常我們使用資料 大多都是使用陣列去處理 07/13 10:40
3F:→ kuAIpAI:等於說 將資料包成自己要的陣列 再用迴圈撈出來使用 07/13 10:41
4F:→ mesak:j忘了說我是用XOOPS 用內建的 樹狀取出來 回傳變數,就直接 07/13 11:01
5F:→ mesak:說記憶體不足,現在伺服器會開大記憶體,不過為了以後設計 07/13 11:01
6F:→ mesak:的問題,我想避免掉這種問題,尤其是跑樹狀分類 很容易遇到 07/13 11:02
7F:→ mesak:這種問題,不解決又不行 07/13 11:02
8F:→ mesak:樹狀一定是用遞迴去跑,跑回來的資料量如果太多一定很大 07/13 11:03
9F:推 ousapas:用stack自行遞迴...y 07/13 11:27
10F:推 ousapas:不然可以用file io做暫存檔取代變數 07/13 11:29
11F:→ arrack:我很好其記憶體是開多少?該不會是以前的設定24MB這樣... 07/13 12:24
12F:→ mesak:16MB 07/13 12:59
13F:→ arrack:16mb說實在的是有點太小了... 07/13 13:21
14F:→ mesak:為了避免有類似情況,只好想想看別種寫法一勞永逸 07/13 14:04
15F:→ averywu:先丟到文字檔或DB? 07/13 14:14
16F:→ gname:你確定是變數爆炸? 還是說瀏灠器受不了這樣的資料量... 07/13 19:48
17F:→ averywu:Browser應該不會炸(IE除外)。我曾丟過一個幾萬筆SQL跑也 07/13 22:15
18F:→ averywu:OK,只是耗很久 07/13 22:16
19F:→ gname:純丟sql跑沒什麼差,別timeout就好,是怕echo到巨量的資料... 07/13 23:36
20F:→ averywu:我是 echo 出來沒錯 07/13 23:54
21F:→ mesak:邊跑邊echo 幾10m的資料量都不太會有問題,但是塞在變數中 07/14 01:23
22F:→ mesak:傳遞,過小記憶體的伺服器 一定停掉....不知道存暫存然後在 07/14 01:24
23F:→ mesak:一個一個讀出來會不會有用....我的寫法是 丟到 smarty 去... 07/14 01:25
24F:→ mesak:因為 smarty 不知道怎麼寫遞迴,所以丟 FUNCTION 先處理... 07/14 01:26
25F:推 pigwolf:配合jquery 分區段撈資料,或是使用ob_start 緩衝區輸出 07/14 18:37