亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

內存問題

2019-11-09 18:31:57
字體:
來源:轉載
供稿:網友

前段時間,我們公司開發的游戲進行了第一次測試, 結果在android平臺上, 由于內存消耗過大,引起了很多崩潰的問題。 我做游戲的時候,內存過大的問題, 一直沒有引起過我的重視,現在想想,主要是沒有碰到過內存占有量太大引起崩潰的問題,那為什么這一次, 這個問題這么的突出呢, 因為這一次我們的游戲類型是一款掛機游戲,也就是戰斗部分,是永遠存在的。問題就來了,戰斗中會有大量的怪物,技能特效,都加載內存中,而切換界面的時候,戰斗是沒有釋放的,之前的游戲,當切換到非戰斗界面,戰斗就會被釋放,自然不會有很大的內存問題,其實出現這個問題,也是有好處的,至少讓我更加重視內存消耗了。 既然出現了這個問題,那么接下來就是如何解決。 1 場景切換的時候,調用引擎函數removeUnusedTextures() 來釋放那些引用計數為1的圖片緩存資源,雖然說緩存是為了性能更快,但是當為了追求性能而引起別的問題,那么將是得不償失。 2 使用了上面的方法后,發現在一些低端機,還是會出現內存不足,那么需要進一步優化。 3 我們ui工程用的是cocostudio制作的,當時每個界面對應著一張大圖,跟蹤引擎代碼,發現引擎加載大圖的時候,首先會把這張大圖放到系統的紋理緩存內,和普通的小圖一樣。所以,每一張texturePacker打包出來的大圖,在引擎的紋理緩存內都對應著一份緩存,而我們的打包出來的大圖,一般都是比較大的資源,所以可以清楚這部分數據。接著引擎會遍歷該大圖內所有的小圖,生成精靈幀,存放到精靈幀緩存內,在這里看到,注意到,加載一個一個的精靈幀的時候,也會有同名的處理, 也就是說,如果兩張大圖內包含相同名字的小圖,那么只認最開始加載的那個小圖,后面發現同名,會直接跳過。在這里,又發現了一個優化點,就是當釋放了某個界面的時候,也可以刪除該界面對應的精靈幀,當我想這么做的時候,卻發現了一個問題,當時美術拼圖的時候,最開始設計的是,每一個界面自己用一張自己的大圖,外加一張公共用到的大圖(該大圖包含,所有公用的資源)后來,為了方便,也是自己經驗不夠,美術就沒按照這個規則了,一張ui工程,用了自己的,也用了不是公用的大圖,這樣就導致優化的時候,不好釋放精靈幀資源,以后這些細節還是很需要注意才行。還有一個問題,就是只要是在代碼里面會有動態的加載圖片的資源(不是加載cocostudio文件一次性加載的 通俗的講 就是非靜態圖片) 那么務必用小圖,不用大圖,如果用了大圖,將導致該大圖不能被刪除。 所以,以后我自己開發項目的時候, 是不允許出現 代碼里面加載圖片用 cocostudio里面的大圖的。 現在想想,如果遵守了這幾個規則,那么在我們各個界面的onexit() 函數內,釋放掉他自己對應的大圖,和大圖內對應的精靈幀,那么也能節約不少內存,這個是結合cocostudio texturePacker texturecach sPRiteFrameCach 一起來講的,也是我自己總結的。 上面說的是從 代碼層面優化內存,還有幾十從資源本身也可以做一些優化,但是有一點一直沒有搞懂,就是網絡上說什么圖片格式不要用rgba8888的,要用什么rgba4444啥的,只知道大的背景圖因為一般無需透明度,可以直接用jpg格式,而jpg格式其實是rgb888格式的, 給我的感覺是每個像素只占24個字節,但是當打印緩存內的jpg格式的大圖的時候,發現他的格式一樣的是每個像素占了32位,這我就搞不懂了。 還有什么rgba4444啥的,不知道是不是美術直接設置成這個格式,還是不是需要程序內再一次設置,沒搞懂。 在這一點上,引擎文檔也沒有任何的說明。先記錄到這。。。 接上,上次說到圖片資源像素格式的問題,今天又針對性的跟蹤了一下代碼。 如果是png類型的圖片,無論美術導出的是什么格式, 引擎在初始化image的時候,都會轉換成 i8 ai88 rgb888 rgba8888 四種類型中的一種,也就是說 即便導出的是rgba4444 實際上會給image設置為rgba8888的格式,接著在初始化texture的時候, 會有一個convertDataToFormat步驟,會把當前image的格式轉換成引擎默認用的像素format g_defaultAlphaPixelFormat 而 g_defaultAlphaPixelFormat默認設置的是rgba8888格式,所以我測試用一張 rgba4444 的圖片 結果內存每個像素也是占32位。但是當發現如果用的是pvr格式的圖片,如果用的是rgba4444格式,觀察在內存中每個像素就只占16位,這就對了,因為引擎不會把rgba4444的轉換為系統默認的格式,轉換的時候,只對以上四種格式。 說的不清楚,我自己總結一下,引擎默認用的格式是rgba8888 32位像素格式,如果不改變,那么所有的png圖片 在內存中都將會是每個像素占32位,當然如果改變默認的像素格式,那么占的內存也會對應的改變,而pvr格式的圖片,如果設置成了rgba4444 他在內存就是每個像素16,有內存上的變小。 感覺說的不是很清楚,但是應該算是徹底懂了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久影院中文字幕| 97久久伊人激情网| 91啪国产在线| 午夜精品久久久久久久男人的天堂| 亚洲精品国产精品乱码不99按摩| 色妞久久福利网| 亚洲v日韩v综合v精品v| 国产精品男女猛烈高潮激情| 久久99精品久久久久久噜噜| 久久久极品av| 欧美超级免费视 在线| 69视频在线免费观看| 中文字幕一区电影| 国产精品久久久久久久久久久不卡| 黑人巨大精品欧美一区二区免费| 精品美女国产在线| 久久久久久网址| 一区二区三区黄色| 欧美日韩成人在线视频| 揄拍成人国产精品视频| 国产成人精品免高潮在线观看| 亚洲综合中文字幕在线| 日韩久久午夜影院| 国产精品午夜视频| 91精品免费久久久久久久久| 欧美成年人网站| xvideos亚洲人网站| 亚洲综合中文字幕在线| 在线亚洲欧美视频| 91国产中文字幕| 久久伊人精品视频| 日韩中文字幕网站| 亚洲一区二区三区乱码aⅴ| 久久亚洲私人国产精品va| 欧美极品少妇xxxxⅹ裸体艺术| 日本在线观看天堂男亚洲| 国产精品永久免费视频| 久久成人亚洲精品| 国产激情综合五月久久| 一区二区中文字幕| 亚洲天堂第一页| 精品国产成人av| 亚洲xxx自由成熟| 日韩中文字幕视频| 国产精品人成电影在线观看| 亚洲免费av网址| 亚洲欧美中文日韩在线| 亚洲第一网站免费视频| 亚洲国产成人精品一区二区| 亚洲开心激情网| 国产精品日日摸夜夜添夜夜av| 久久久久久国产精品美女| 成人精品久久一区二区三区| 亚洲国产97在线精品一区| 日韩动漫免费观看电视剧高清| 欧美电影免费看| 精品免费在线视频| 亚洲人成五月天| 日本人成精品视频在线| 一区二区三区久久精品| 亚洲影视九九影院在线观看| 美女少妇精品视频| 亚洲奶大毛多的老太婆| 懂色av中文一区二区三区天美| 国产精品日韩av| 成人伊人精品色xxxx视频| 国产成人精品国内自产拍免费看| 亚洲精品wwwww| 在线日韩第一页| 欧美亚洲成人精品| 色综合五月天导航| 美女精品久久久| 成人中心免费视频| 国产精品亚洲自拍| 国产主播喷水一区二区| 久久久久久久久网站| 久久人人爽人人爽爽久久| www.国产一区| 日韩成人中文字幕| 欧美裸体xxxx极品少妇| 69久久夜色精品国产7777| 国产精品网红福利| 91老司机精品视频| 欧美日韩成人黄色| 日本亚洲欧洲色α| 欧美电影在线观看高清| 日韩高清免费在线| 欧美国产第一页| 亚洲成人久久电影| 日韩成人激情影院| 国产精品日韩欧美| 成人两性免费视频| 国产精品热视频| 亚洲天堂免费观看| 亚洲精品电影网在线观看| 国产精品亚洲第一区| 国产美女扒开尿口久久久| 欧美一区二区三区精品电影| 久久伊人精品一区二区三区| 97碰在线观看| 国产一区二区黑人欧美xxxx| 国产欧美精品一区二区三区-老狼| 4388成人网| 97精品欧美一区二区三区| 日韩中文字幕欧美| 综合国产在线视频| 国产美女精品视频免费观看| 国产日韩欧美在线观看| 久久精品一区中文字幕| 亚洲第一区第一页| 中文国产亚洲喷潮| 国产一区二区久久精品| 国产精品免费久久久久久| 91精品国产91久久久久久吃药| 欧美专区在线播放| 亚洲女人被黑人巨大进入al| 亚洲精品国产精品国自产在线| 精品国产依人香蕉在线精品| 亚洲成人av在线| 亚洲国产精品小视频| 日韩在线视频免费观看| 成人性生交xxxxx网站| 中文字幕欧美视频在线| 国产成人高清激情视频在线观看| 亚洲自拍偷拍第一页| 4444欧美成人kkkk| 国产欧美日韩精品丝袜高跟鞋| 久久久999成人| 欧美激情视频在线观看| 欧美黄色片视频| 日产精品99久久久久久| 欧美大片第1页| 欧美精品午夜视频| 2019亚洲男人天堂| 久久精品国产欧美激情| 久久99热这里只有精品国产| 久久久久这里只有精品| 韩日精品中文字幕| 91精品在线观看视频| 欧美日在线观看| 亚洲欧美日韩成人| 国产精品入口尤物| 少妇久久久久久| 日韩av色在线| 亚洲嫩模很污视频| 久久精视频免费在线久久完整在线看| 国产精品色婷婷视频| 精品偷拍一区二区三区在线看| 国产成人在线亚洲欧美| 国产精品久久久久秋霞鲁丝| 精品亚洲一区二区三区| 日本伊人精品一区二区三区介绍| 茄子视频成人在线| 68精品国产免费久久久久久婷婷| 日韩在线视频观看正片免费网站| 97超级碰在线看视频免费在线看| 精品福利视频导航| 中文日韩电影网站| 久久综合伊人77777| 66m—66摸成人免费视频| 精品国产乱码久久久久久婷婷| 亚洲第一精品夜夜躁人人爽| 国产视频精品免费播放| 国产成人精品最新|