游戲開發是一個比較廣泛的話題,說哪種語言更好其實不合適,應該是那種語言更適合那種層次的處理,
在進行資料量比較大的游戲開發時,更占優勢的無疑是C++這門編程語言!之所以這樣講,以我的經驗來看主要是兩個方面!
幾年前,我用Java撰寫了一個程序3D建模應用程式,該程式能夠處理數百萬個多邊形,它使用了智能磁區系統,該系統生成執行緒以最佳利用所有CPU內核,如此繁重,

我可以肯定地說,Java,甚至C#進行海量資料計算的最大問題不是該語言解釋的實際速度(但是這些語言的速度幾乎與C++一樣快),但是記憶體管理和垃圾回收是影響游戲的關鍵因素,
《2021最新C/C++編程學習路線和視頻教學》
缺乏對記憶體的控制權,導致軟體消耗過多的記憶體,同時產生由垃圾收集器引起的不規則的滯后,
當有足夠的可用記憶體時,軟體會平穩運行,但是達到限制(無論保留的記憶體塊大小如何,都會達到限制)時,用戶會遇到滯后,可能需要幾分之一秒甚至幾秒鐘的時間,這是非常糟糕的,

由于缺乏對記憶體的控制,因此記憶體管理器有時會保存巨大的記憶體塊,您知道這些記憶體塊將永遠不會再被使用,并且無法像C++中那樣立即強制釋放這些記憶體塊,
結果是該軟體的記憶體效率非常低,
自動垃圾收集系統對資料沒有更高的語意理解,因此它使用在大多數情況下“最佳”作業的策略,但是這種策略效率很低,
在C++中,你可以根據特定用途分配和釋放記憶體塊,并使記憶體管理更有效,但是,您需要自己完成所有作業,并且搞砸的可能性更大,這會對C++產生致命的后果,
希望將來的垃圾回收器實作方案,以實作對記憶體的更多控制,還可以使用自定義記憶體管理器自行完成所有操作,但這將是一個不切實際的解決方案,但值得考慮,

但是當需要為GPU提供海量資料并最大程度地優化所有內容時,最好使用C或C ++直接運行代碼,這可以給您更多的控制權,并使您可以更好地優化代碼的性能敏感部分,

不幸的是,作為Unity開發人員,我可以告訴您,當您需要使用C#執行對性能敏感的計算時,可能會遇到這種情況,這可能表明該語言的局限性,
但是,您可以在應用程式中使用自定義記憶體管理器,并明智地設計代碼,以使其更容易在語言解釋器中更有效地運行,從而獲得良好的性能,但是有時用C / C ++撰寫敏感部分可能會更好,
另外如果你想更好的提升你的編程能力,學好C語言C++編程,以便更好從事編程類作業(游戲開發)的話!那么你很幸運~

最后,不管你是轉行也好,初學也罷,進階也可,如果你想學編程~
【值得關注】我的 C/C++編程學習交流俱樂部!【點擊進入】
問題答疑,學習交流,技術探討,還有超多編程資源大全,零基礎的視頻也超棒~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/246429.html
標籤:其他
上一篇:odoo之錯誤合集一
