Unity優化雜談2(MONO記憶體)

2021-08-09 04:04:53 字數 1099 閱讀 4195

mono記憶體是unity中不會釋放的記憶體,他的容量一旦被撐大,專案所佔的記憶體就會跟著增大,不能手動釋放。是乙個比較危險的地方,wetest給出的標準是峰值不要超過50m,wetest裡面會有最大的top50的占用資訊,裡面有一些重複,但是也可以根據這個確定需要優化的內容,並且從中找到關聯的一些問題。

根據我這裡面顯示mono裡面主要為:(具體專案具體分析)

1.    protobuf所存的**的陣列資訊

2.    uidrawcall的陣列佇列資訊

**這塊的問題:

1.mono記憶體問題,是**的結構和設計不合理,存在大量冗餘欄位和空欄位。解決方案為根據自己專案邏輯拆分大表,並刪除冗餘和無用字段,效果明顯。

tips

:之前幾個專案都是快取部分表,之後用到那張表載入那張表,所以拆分表有利於提高記載速度,但是具體專案具體分析)

2.gc問題,是protobuf所生成的,在專案裡面以txt形式儲存資料,在使用時,需要先將txt讀取到陣列當中,在讀取txt時會產生大量的gc,造成一定的卡頓。(我們當時100k的表會產生1m以上的gc,可能是解析處理的問題,但是後來直接吧這個機制換掉了,沒有做深研究,不做介紹了。)最後換成將**儲存在物件上,需要用的這個表就例項化**對應的物件。

3.**數量問題,我們當時最大138張表,其中好多**都為幾個字段,1k一張表,還有一些開發過程中臨時表。相關**合併,用字段區分。

4.字典表過大,因為多語言版本最初把其他語言版本配置在一張表中,方便使用。之後把生成和讀取的地方做修改,根據語言種類生成

n張表,最後只讀取一張表。

最後隨著專案的增大,數值必然會增加,無需糾結最大值合適自己專案的才是最好的。

我們改完之後就可以接受了。

ADSL 網通2M路由貓設定

adsl 網通2m路由貓設定 從上面的描述中我們可以知道使用網通2m新品路由貓最大的問題就是貝爾 阿爾卡特rg100a aa自身無法實現pppoe自動撥號功能,這個功能被閹割簡化掉,我們還需要在計算機上建立撥號或者直接通過另外乙個路由器完成撥號任務 另外lan3,lan4介面被廢無法使用,我們要連線...

discuz 論壇 附件大小限制2M

初始安裝的discuz論壇附件大小預設限制為2m。首先,需要修改伺服器空間配置的php引數允許上傳附件的大小。php.ini的位置在c盤windows或system32目錄下 post max size 8m 表單提交的最大限制,此項不是限制上傳單個檔案的大小,而是提交的整個表單資料限制 uploa...

PHP 上傳大於2M的檔案限制

不管是linux還是window伺服器上傳大檔案總提示超時,或者傳不上去等等,把最近遇到的這個問題的解決辦法和大家分享一下 php.ini 裡查詢查詢post max size 改為 post max size 100m 查詢upload max filesize,預設為2m 改為 upload m...