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