[UE4]藍圖比C++慢10倍,是嗎?


  首先,藍圖肯定是比C++慢。

  任何腳本語言(需要解釋執行的語言),和C++相比可能達到十倍甚至百倍的差距。比如Java、Python、Lua,JS。

  腳本語言是運行在虛擬機上的,所以它們比起直接運行的代碼要慢,要慢很多。

  藍圖屬於腳本語言,其性能不比Java、Python、Lua,JS差。

  藍圖比C++慢10倍嗎?這個問題不能一概而論,要具體情況具體分析,因為大部分情況下,藍圖所調用的函數都是C++寫的,所以總體上來說,並沒有達到10倍的差距。

  如果和純C++相比,藍圖調用C++函數的額外開銷,是藍圖將參數傳遞給C++的過程。

在藍圖里面將參數傳遞給C++,以及在返回的時候,C++把數據傳遞給藍圖,這個過程比純C++是有額外開銷的。

  假設一幀內的同樣的邏輯,用C++執行需要0.1毫秒,用藍圖需要1毫秒(也就是藍圖比C++相差10倍)。請問玩家能感覺出來嗎?答案是肯定感覺不出來的,因為在60幀游戲中,游戲主循環運行一幀需要17毫秒,藍圖只占用1毫秒,還有16毫秒是在Sleep中等待。

  就算藍圖需要10毫秒運行一幀,比C++運行一幀0.1毫秒,相差100倍,在60幀游戲中(運行一幀需要17毫秒)也是有7毫秒在Sleep中等待,因此玩家也是完全感覺不出來的。

  游戲主循環詳見:游戲主循環

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM