看板 PHP 關於我們 聯絡資訊
※ 引述《b60413 (None)》之銘言: : 按照Phalcon官方文件課程, : 目前正學習到Cache這個章節, : 主要問題是我使用內建的\Phalcon\Cache\Frontend\Data去儲存資料, : 時常會導致記憶體不夠配置, : (使用model取得table資料, 再用Paginator來做分頁, 資料約45萬筆) 不要啊!! 內建的 paginator 是抓row出來在做分頁. 那很恐怖的 1次查詢就吃了你5xxMB, 多個2~3個就爆了吧. 請自己重建一個 paginator 實做sql limit 吧!! 當初看paginator第一件事就是確認是那種方式 : 而實際資料只占用500多MB, : 但仍然出現記憶體配置不足的狀況, : 我想可能是物件的方式太占用記憶體, 印象中 ModelCache 是做DB中間層, 減少DB query次數 所以是吧model 資料存起來, 但你要用的時候, 還是會 轉回去 model\result 物件, 並不會減少你記憶體用量 可能要轉cache 還多用了一些 : 我想他也許沒這麼聰明, : 可能要自己先將資料轉換成Json格式才有辦法做儲存, 他留了很多彈性, 所以可以選擇要用那種格式放到Cache 這是 FrontEnd/Cache/Data 的用處, 決定要放那種資料形式 $di->set('cache', function() { $redis = new Redis(); $redis->connect($host, $cport); $frontend = new Phalcon\Cache\Frontend\Data(array('lifetime' => $lifetime)); $cache = new Phalcon\Cache\Backend\Redis($frontend, array('redis' => $redis)); return $cache; }); : (在find時, 有增加參數hydration => Resultset::HYDRATE_ARRAYS, 再用json_encode) : 但結果仍然是一個空物件, : 我想也許是我快取的方法使用不對, : 於是改用modelsCache的方式去實作, : 此時系統卻出現下面錯誤, : Phalcon\\Mvc\\Model\\Query::execute(): : Call to undefined method setisfresh() on class stdClass : 想請問, : Phalcon提供的Cache, : 有沒有Phalcon官方文件, : 範例時常有問題八卦...囧rz 對. 1.2.4 file 處理有個 getRealType... 回傳 Null 啥! 去爬 source 發現沒實做完! 啊老師的, 還"建議"要用這個! 還有 dispatcher 那邊的鬼 -- 人大抵上既沒有自己想像中那麼幸福,也沒有那麼不幸…重要的是, 是否對於生存抱著希望或已厭倦 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.31.105.62
b60413:感謝提醒分業的實作, 會想這測試 01/20 12:56
b60413:主要是因為想要了解這套Framework的效能 01/20 12:56
b60413:所以是抱持著很懷疑的心態去做這樣的測試 01/20 12:57
b60413:當時並沒有先看該Framework的Source 01/20 12:57