在前面的文章里,我發(fā)布了修改版的boor到http://download.csdn.net/source/2578241
,
支持中文pdf和中文txt,能正確顯示中文目錄。
問題
不過,有的朋友反映打開大的pdf文件時,容易死機(jī)。
這幾天看了下,果然發(fā)現(xiàn)問題了。 為了加快讀取pdf頁面速度,bookr一開始就加載了所有的pageTree到內(nèi)存中,
這樣顯示特定頁面的時候,就無需查找該頁面的PageObject了,這在PC機(jī)上一般沒什么問題,PC機(jī)有虛擬內(nèi)存,即使pdf文件很大,無非是加載pageTree慢點(diǎn),
不過在PSP上就不行了,PSP的內(nèi)存是有限的,而且沒有虛擬內(nèi)存,所以如果PageTree很大,那么很可能會導(dǎo)致內(nèi)存不夠,直接死機(jī)了。。。。
解決辦法
解決辦法其實(shí)也很簡單,bookr啟動的時候不加載PageTree,而是在每次顯示的時候,從Root開始便利PageTree查詢PageObject對象,任意一時刻,內(nèi)存中只有一個PageObject對象。
這樣就就基本解決了內(nèi)存問題。下一個問題是查詢效率的問題,這個問題其實(shí)不那么嚴(yán)重,PageTree本來就是一個樹形結(jié)構(gòu),pdf的PageObject查詢可以優(yōu)化成一個樹查詢,這樣應(yīng)該會很快,實(shí)際編碼測試,
根本感覺不到修改前后翻頁速度有明顯變化。
修改后用 金庸全集三聯(lián)版.pdf(48.6M)測試OK。
下載
1、下載http://download.csdn.net/source/2578241
解壓到psp/game目錄下。
2、從http://www.shnenglu.com/Files/feixuwu/EBOOT.rar
下載,解壓后,覆蓋原來bookr目錄下的EBOOT.PBP文件即可。
posted on 2010-08-04 17:41
feixuwu 閱讀(2000)
評論(2) 編輯 收藏 引用 所屬分類:
PSP開發(fā)