日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

内存优化之资源管理

發布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 内存优化之资源管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

推薦閱讀:

  • ?我的CSDN
  • ?我的博客園
  • ?QQ群:704621321

注:以下文章是針對egret來寫的,其他引擎可參考思想,實現或許會有差異

我們這邊的分多個場景,比如說我們登錄場景資源,是另外分開的一個json配置的,到我們切換場景的時候就會根據那個配置的url來RES.destory對應的資源

比如游戲主場景,我們游戲是切塊地圖的,我們在進入游戲的時候會把地圖資源存在一個map對象里面,每當切換場景要切地圖的時候,我們就會檢索這個map對象,來銷毀地圖加載新的地圖

  • 模型,特效資源。(加載、銷毀管理,納入計數器。定時檢測,如果資源銷毀時間超過5分鐘,則會判定為資源可回收)
    2.地圖資源(主要是場景圖片)。 (場景移動過程中,會把當前使用到的圖片都放入一個map中存起來,(暫定為1分鐘檢測一次)定時檢測,移除超過玩家9宮格范圍外 2個格子的其它地圖資源)
    3.UI圖片,圖標資源。(對圖片資源進行管理,界面打開的時候,會進場注冊使用,計數+1,界面關閉的時候,會進入銷毀邏輯,計數-1 ,定時檢測,當前使用圖片計數為0 的圖片資源 。 不過現在這個地方還是會有問題:主要在Render 列表的地方)
  • 我的方法就比較簡單粗暴,直接添加到舞臺上的時候弄個標記,不在舞臺上了去掉,直接讀RES中的緩存池,過濾不在舞臺上的,其他全干掉



    通用性高的資源,加入公共圖集,獨立性強的UI,放在自己的模塊中即可。
    比如這是common圖集,我們會分的比較細一點。 比如這是common圖集,我們會分的比較細一點。


    他的做法是,除了加入引用計數之外,還加入一個最后引用的時間戳,每次檢測的時候處理看引用計數之外,還看間隔的時間,如果最近引用的時間太近的話,也不釋放
    一般公共的圖片,應該都有最近的引用時間戳,所以應該也不會被釋放。

    此外有一位大神做的比較厲害的地方:
    對象池技術:(游戲中基本所有對象,都通過對象池來進行創建。包括但不局限于:文本、圖片、各種對象), 基本把laya的底層代碼,都進行了相關修改

    總結

    以上是生活随笔為你收集整理的内存优化之资源管理的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。