国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

游戲性能優化的經驗談

移動開發
說起游戲的優化,在游戲開發中經常分為這幾步:首先要確定游戲中經常會出現哪些問題 - Profile;然后確定在哪些方向進行性能優化 - Analyze;最后再盡可能將問題逐個解決 - Solve

[[149217]]

優化概論

說起游戲的優化,在游戲開發中經常分為這幾步:

  • 首先要確定游戲中經常會出現哪些問題 - Profile

  • 然后確定在哪些方向進行性能優化 - Analyze

  • ***再盡可能將問題逐個解決 - Solve

游戲開發中一定是先做工具,進行Profile,再進行優化,所以,說優化就不得不再扯一下Profile

常見的工具有一些是引擎和IDE自帶的,比如Unity自帶的Profiler,就包含了CPU,GPU,Memory等等各式各樣的性能分析工具,其他的比如GPA,Xcode Instrument和Visual Studio,Intel自帶的內存管理工具在必要的時候也使需要去學習和使用的。

另外一些工具,就需要根據游戲的需求去編寫了,比如一鍵關閉所有特效,一鍵更改分辨率等等,一鍵設置場上NPC數量,簡單的游戲如啪啪三國是做成快捷鍵開啟Profile功能的,更為復雜的游戲如神秘海域則是通過游戲內控制臺來進行更為細致的Profie。

接著,我們再來說說游戲優化中主要的四個考慮方向:

o_optimize.jpg

CPU

引發的問題:

  • 由于短時間內的計算量太大,導致畫面流暢性降低,俗稱跳幀

  • 發熱嚴重,耗電量高

常見的優化手段:

  • 將計算分到多個邏輯幀中進行計算,避免短時間內的性能超過負荷,俗稱“分幀”(time-slice)。

  • 將可以緩存的數據盡可能的緩存起來,避免重復計算和重復分配內存,常見的示例為“內存池”。

  • 使用合理的算法和數據結構,比如:冒泡排序和直接插入排序在整體數組比較有序的情況下效率大大好于快速排序。把快排替換成是優化程序排序效率的一個常見的思路。

GPU

引發的問題:

  • 發熱嚴重,耗電量高

  • FPS降低

常見的優化手段:

  • 優化美術資源,比如合理規劃圖集,約定好模型的***三角形面數,制定合理的粒子效果規范。這個可以說是游戲優化中最重要的一個,因此,技術美術在游戲開發中作用巨大。

  • 簡化或者優化著色器(shader),如在游戲開始前就對Shader進行編譯和加載。

  • 使用Batching,盡量減少DrawCall

  • 使用平臺推薦的壓縮格式,比如安卓平臺的ETC1和IOS平臺的PVRTC

IO和網絡

引發的問題:

  • 網絡延遲甚至掉線

  • 加載資源導致的跳幀

  • 加載時間過長

常見的優化手段:

  • 使用獨立的線程進行加載,有些引擎如Unity中還能利用協程

  • 減少網絡包里面的冗余數據

  • 合并小包,減少請求數據的次數

  • 分幀對回包進行處理

  • 限制一定時間內的發包頻率

內存

引發的問題:

  • 閃退和卡死,比如安卓的Low Memory Killer會在低內存情況下殺掉內存占用過大的程序。

常見的優化手段:

  • 動態加載和卸載資源,比如在游戲內的時候,我們可以把游戲外的一些UI圖集卸載掉。

  • 降低資源質量或屏幕分辨率,這是有損優化,一般作為***的手段

對做過項目的一些思考

需要關注非功能性需求

這一點思考是我從“為什么很多看起來不是很復雜的網站,比如 Facebook 需要大量***高手來開發?”這個答案中想到的,正如這位答主所說:

“事實上,從我的經驗來看,一般來說,很多軟件項目及產品,其在非功能性需求上的成本,難度和工作量,是要超過功能性需求的。在特定的軟件領域,例如網站(尤其是淘寶,facebook這樣海量用戶規模的網站),金融(銀行證券),電信領域,其非功能性需求實現的重要性,工作量,技術難度要遠遠遠遠大于功能性需求的實現。而且,功能性的需求的實現,其實在大多數情況下,更依賴于業務的高手(或者好的產品經理)而不是技術的高手,而非功能性需求的實現,恰恰是挑戰技術高手的重要課題。”

在游戲前端這邊做了一段時間,大家都在抱怨游戲前端技術含量低,只能寫業務邏輯,但是其中的陷阱就是,作為前端,你應當盡量少寫業務邏輯,你關注過一下的模塊嗎?

  • 性能:你有沒有在自己的游戲中進行Profile,觀察在以上各個參數有沒有達到指標

  • 安全:你的游戲前端代碼的Release版本是否還能被別人輕易反編譯,你的游戲是否還能輕易被玩家截取網絡包或修改內存數據

  • 可測試性:你的前端代碼能不能進行單元測試,能不能在QA測試之前就把Model層的所有bug解決掉

  • 數據驅動:你能不能做出更優秀的工具來給美術和策劃使用,解放他們的生產力?

需要善于劃定范圍,縮小問題區間

我在過去幾個月里,參加了全民突擊和崩壞學園2兩個Unity3D項目的開發,也遇到了一些性能優化相關的問題,在程序出現問題時,很多時候我們會通過所謂的“經驗”去解決問題,這種Quick Link的能力自然是非常重要,但經驗并非***。

但是從另一方面來講,當我們無法從自己過往的經驗中找到答案的時候,我們就要通過劃分范圍,縮小問題區間來解決問題了,許多人往往只是在自己的經驗中死守一個局部的視野去處理問題,***的結果就一定不能盡如人意。

總結

其實這四個方面的優化總是相互制衡的,你把一個方面的優化做好了,另一個方面的問題又會出現了,比如,我們如果使用動態加載和卸載資源,這就雖然減少了內存占用量,會在IO上造成加載時間延長的問題。

所以,我們在做游戲優化的時候,不能太追求***,剛剛好就是真的好(Good Enough Is Fine)。最終使得以上這四個方面能達到均衡即可,切忌在某一方面優化過頭,又引發其他方面的問題,此消彼長的情況下,有時反而不如不做優化。

責任編輯:倪明 來源: 王選易的博客
相關推薦

2009-06-29 15:39:53

Servlet和JSPServlet引擎

2011-06-21 16:26:19

SEO內部優化

2011-09-09 09:50:40

Oracle

2012-05-21 10:35:20

Windows Pho

2011-08-15 10:27:48

2013-05-10 09:36:32

2024-05-28 07:01:29

2009-09-14 15:04:44

2009-08-03 10:13:13

開發框架

2013-04-25 09:41:33

網管高級網管網絡管理

2014-03-13 09:20:38

jQueryAngularJs

2013-08-02 11:23:45

2025-03-05 09:00:00

大語言模型自然語言AI

2017-01-20 09:43:12

日志告警挖掘

2010-08-17 13:23:49

2012-07-13 14:25:59

2019-08-13 07:10:52

GameModeLinux游戲性能

2009-07-04 15:17:37

2016-01-11 11:20:43

2015-09-23 14:01:51

點贊
收藏

51CTO技術棧公眾號

成人免费观看cn| 久热国产精品| 97视频在线观看视频免费视频| 亚洲不卡在线| 国内精品久久久久影院优 | 精品国产一区二区在线 | 国产精品灌醉下药二区| 亚洲激情文学| 亚洲第一福利网站| 国产厕拍一区| 激情伦成人综合小说| 麻豆专区一区二区三区四区五区| 成人性生活视频免费看| 亚瑟在线精品视频| 亚洲天堂资源| 国产精品美乳一区二区免费| 99xxxx成人网| 国产黄视频在线| 狠狠操狠狠色综合网| caoporn视频在线观看| 久久久最新网址| 久久香蕉精品| www.99色.com| 亚洲精品按摩视频| 美日韩黄色大片| 亚洲午夜久久久影院伊人| 亚洲欧美欧美一区二区三区| www免费视频观看在线| 久久久久久久久久av| 美日韩精品视频| 三级a三级三级三级a十八发禁止| 欧美年轻男男videosbes| 色悠久久久久综合先锋影音下载 | 精品96久久久久久中文字幕无| 99在线精品免费视频| 在线一区二区视频| www.欧美视频| 欧美激情视频一区二区三区| 国产精品福利影院| 欧洲中文在线| 92国产精品视频| 91女厕偷拍女厕偷拍高清| 国产精品久久久久一区二区国产 | 精品久久久久99| 日韩在线观看电影完整版高清免费悬疑悬疑| 伊人狠狠色丁香综合尤物| 亚洲成人免费视| 亚洲免费一区三区| 妞干网在线播放| 日韩网站在线看片你懂的| 成人3d动漫在线观看| 乱妇乱女熟妇熟女网站| 欧美一区二区三区喷汁尤物| 97视频热人人精品免费| 日韩中文字幕二区| 亚洲精品国产suv| 国产精品日韩| 亚洲人成77777男人| 欧美激情精品久久久久久久变态 | 精品一区二区免费| 校园春色综合| 高清欧美一区二区三区| 国产精品77777| 在线三级中文| av日韩免费电影| 午夜欧美在线一二页| 网曝91综合精品门事件在线| 日本wwww视频| 亚洲视频电影图片偷拍一区| 水野朝阳av一区二区三区| 成年女人的天堂在线| 成人欧美一区二区三区黑人孕妇| 国产片一区二区| 国产区一区二| 超碰在线免费观看97| 精品免费视频一区二区| 日韩午夜av| 午夜在线观看视频| 高清不卡日本v二区在线| 欧美日韩一区二区三区| 国产欧美高清视频在线| jizz欧美性11| 性欧美xxxx交| 国产精品夫妻自拍| 天堂99x99es久久精品免费| 8x8x最新地址| 久久久女人电视剧免费播放下载| 91在线观看高清| 一区二区三区免费在线看| 欧美性猛交xxx乱久交| 欧美激情videoshd| 中文字幕一区二区5566日韩| 高清精品视频| 成年人羞羞的网站| 国产一区二区丝袜| 欧美揉bbbbb揉bbbbb| 亚洲久久视频| av午夜在线观看| 欧美人与动牲交xxxxbbbb| 少妇高潮久久77777| 久久精品一区二区三区四区| 亚洲第一二区| ·天天天天操| 国产日韩视频在线观看| 福利精品视频在线| 亚洲国产日本| 国产夫妻在线播放| 欧美变态另类刺激| 欧美专区第一页| 色婷婷国产精品| 毛片一区二区| 在线看片国产福利你懂的| 国产天堂视频在线观看| 欧美精品18videosex性欧美| 亚洲欧美激情一区二区| 亚洲福利视频网| 91麻豆精品国产91久久久平台| 成人亚洲精品| 亚洲91视频| 国产免费成人在线视频| 欧美日韩国产在线播放| 色一区在线观看| 欧美日韩中文精品| 国产一区二区美女| 亚洲成人福利片| 亚洲美女av黄| 欧美成人国产一区二区| 色噜噜国产精品视频一区二区| 国产精品久久久久秋霞鲁丝| 日本一区不卡| 国产三级在线免费观看| 日本韩国欧美超级黄在线观看| 麻豆传媒一区二区三区| 亚洲成av人片一区二区梦乃| 一本大道亚洲视频| 国产精品一区二区三区免费观看| 成人免费黄色网页| 91在线你懂得| 久久精品2019中文字幕| 亚洲中文字幕无码一区二区三区 | 亚洲日本视频| 中文字幕在线免费不卡| 五月天国产一区| 视频直播国产精品| 亚洲另类在线视频| 日韩在线一区二区三区| 亚洲精品毛片| 未来日记在线观看| 超碰10000| 国产在线不卡精品| 国产一区二区日韩| 五月天精品一区二区三区| 国产在线精品一区二区| 欧美日日夜夜| 男插女视频久久久| 国产小视频精品| 欧美韩国日本精品一区二区三区| 久久久国产成人精品| 欧美老人xxxx18| 欧美韩日一区二区三区四区| 久久福利精品| 国产成人手机高清在线观看网站| heyzo一区| 激情视频免费观看在线| www.亚洲视频.com| 999久久久| 国内揄拍国内精品少妇国语| 日韩欧美国产午夜精品| 亚洲欧美日本韩国| 99麻豆久久久国产精品免费| 一区在线免费| 国产日产精品一区二区三区四区的观看方式 | 国产mv免费观看入口亚洲| 欧美成人欧美edvon| 一区二区三区成人| 成人av影院在线| 亚洲三级视频| 成人在线免费视频观看| 四虎精品在线观看| 男人天堂亚洲天堂| 最新亚洲伊人网| 粗暴91大变态调教| 26uuu成人| 91蜜桃网站免费观看| 欧美激情a∨在线视频播放 | 亚洲一二三四在线观看| 国产一区在线看| 在线亚洲成人| 久久中文字幕二区| 红杏成人性视频免费看| 亚洲男人av| 亚洲资源一区| 九色视频在线播放| 在线播放evaelfie极品| 国产天堂在线播放| 成人在线观看你懂的| 一区二区免费在线观看| 精品日本一区二区三区在线观看| 国产日韩中文字幕| 日韩av不卡电影|