為什麼Unity在CPU 記憶體 磁碟 網路這些占用都不高的情況下play還會卡住?

時間 2021-06-01 23:18:32

1樓:金曉宇

我工作中碰到的主要是由於解除安裝domain造成的。

unity使用了兩個domain,乙個root domain,乙個child domain。通常執行都是在child domain上。乙個domain載入的assembly是不允許單獨解除安裝的,所以要解除安裝assembly只能解除安裝domain,再重新建立。

當進入play mode時,由於一些狀態的改變,就需要解除安裝child domain。

乙個影響的因素是[InitializeOnLoad]屬性。可以儘量減少此屬性。或者集中到乙個類中來執行。

乙個影響的因素是OnValidate,這個方法會在進入play mode時呼叫

另乙個影響的因素是mono restart時會做序列化,這涉及到所有需要序列化的class。

2019版本有個Configurable Enter Play Mode會優化這個問題。

2樓:趙青青

在unity的啟動指令碼,就是你掛在場景gameobject的指令碼,看看指令碼中做了什麼事,是否是有網路互動,還是其它操作。然後看Unity的profiler

3樓:1diot

。。。占用不高和卡不卡並不強耦合啊。

我隨便舉例:

int a = 0;

while(true)

同樣占用不會高但是卡的不要不要。哥們我覺得你還是遇到問題先自己找一找。。。別急著上網問。實在解決不了再問啊。。。

為什麼在 CPU 中要用 Cache 從記憶體中快速提取資料?

sand cpu 計算速度太快,二內記憶體的讀取速度很慢,所以需要 cpu 那邊的快取來提高讀取速度。快取的材料是 SRAM 成本比記憶體高,但是快取的讀取速度快。如果沒有快取,隨著cpu越來越快,cpu 會消耗更多的時鐘週期來等待記憶體的載入,從而 cpu 的利用率越來越低。 lalala 首先在...

unity在ios平台下記憶體的優化?

Jare Guo 一方面是避免記憶體洩漏,另一方面是減少記憶體分配。避免記憶體洩漏,需要細心的去進行黑盒白盒檢查,一般都是設計上的不合理造成的。同時可以善用 Destroy 方法,強制釋放非託管記憶體。最好弄清楚 Unity 的資源管理機制,這方面網上教程很多,我就不做搬運工了。減少記憶體分配,並不...

CPU 工藝越來越先進,為什麼不把記憶體 SSD 都整合到 CPU 中?

ieeesscs 先問是不是,再問為什麼。其實很多CPU都整合了記憶體或SSD,這種CPU通常叫做MCU。首先解釋一下為什麼題主提到的一般意義上的CPU沒有整合記憶體和SSD。這主要是因為儲存器的工藝一直落後於數字邏輯電路的工藝,比如現在最先進的CPU已經用到5nm工藝了,但是DRAM還是在15nm...