偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

游戲開發(fā)者需要注意的4個(gè)內(nèi)存使用問題

移動(dòng)開發(fā) 游戲開發(fā)
從銷售角度來看,你的全新手機(jī)游戲總是應(yīng)該適用于今天人們所使用的大多數(shù)設(shè)備?!按蠖鄶?shù)設(shè)備”可能會(huì)讓開發(fā)者感到驚訝。在2015年1月,世界各地的手機(jī)用戶數(shù)已經(jīng)達(dá)到36億人。所以開發(fā)者的工作便是讓游戲/應(yīng)用能夠適應(yīng)這些設(shè)備的種種硬件約束條件。開發(fā)者們?cè)陂_發(fā)像游戲等需要耗費(fèi)內(nèi)存的軟件時(shí)需要進(jìn)行更多思考。通過編寫這篇文章,我希望能夠幫助一些不了解技術(shù)的人進(jìn)一步理解一些內(nèi)存問題,而這也是他們?cè)谥铝τ?D游戲項(xiàng)目時(shí)需要考慮的內(nèi)容。

[[151106]]

作者:Aditya Kulkarni

從銷售角度來看,你的全新手機(jī)游戲總是應(yīng)該適用于今天人們所使用的大多數(shù)設(shè)備。“大多數(shù)設(shè)備”可能會(huì)讓開發(fā)者感到驚訝。在2015年1月,世界各地的手機(jī)用戶數(shù)已經(jīng)達(dá)到36億人。所以開發(fā)者的工作便是讓游戲/應(yīng)用能夠適應(yīng)這些設(shè)備的種種硬件約束條件。開發(fā)者們?cè)陂_發(fā)像游戲等需要耗費(fèi)內(nèi)存的軟件時(shí)需要進(jìn)行更多思考。通過編寫這篇文章,我希望能夠幫助一些不了解技術(shù)的人進(jìn)一步理解一些內(nèi)存問題,而這也是他們?cè)谥铝τ?D游戲項(xiàng)目時(shí)需要考慮的內(nèi)容。

1)內(nèi)存泄露:內(nèi)存泄露指的是未被釋放的分配內(nèi)存塊。

類比:讓我們想象你在一個(gè)擁有3個(gè)方形儲(chǔ)物柜的房間尋找一個(gè)儲(chǔ)物柜。

[[151107]]

lockers(from gamecareerguide)

1.John和Danny“需要”儲(chǔ)存自己的裝備,而一個(gè)儲(chǔ)物柜便足以滿足他們每個(gè)人。所以現(xiàn)在我們擁有2個(gè)已被使用的儲(chǔ)物柜,以及1個(gè)閑置的儲(chǔ)物柜。

2.這時(shí)候John需要儲(chǔ)存他的頭盔,并且不再需要他之前儲(chǔ)存的裝備。所以現(xiàn)在最理想的情況是他應(yīng)該拿出之前的裝備并將頭盔裝進(jìn)去。但是他卻向管理者請(qǐng)求另一個(gè)儲(chǔ)物柜并希望將頭盔放在全新儲(chǔ)物柜中。從邏輯上看,在這之后所有的儲(chǔ)物柜便都滿了。而現(xiàn)在的John會(huì)忘記自己儲(chǔ)存在***個(gè)儲(chǔ)物柜中的裝備。

3.現(xiàn)在Danny需要儲(chǔ)存2個(gè)頭盔并需要2個(gè)儲(chǔ)物柜,所以他決定拿掉自己的裝備并空出1個(gè)儲(chǔ)物柜。然后他向管理者申請(qǐng)了一個(gè)新的儲(chǔ)物柜,但是因?yàn)樗袃?chǔ)物柜都滿了所以遭到了管理者的拒絕。

在這里,即使John從儲(chǔ)物柜中拿掉無用的裝備,Danny也不能再使用多出來的儲(chǔ)存空間。

2)相同紋理的多個(gè)例子:一個(gè)紋理將占用寬度*高度*4(游戲邦注:紅色,綠色,藍(lán)色和透明度各占據(jù)1個(gè)字節(jié))的儲(chǔ)存空間。所以一張512×512規(guī)格的圖像將占據(jù)1.05兆的內(nèi)存。而同樣的紋理將占據(jù)其3倍的儲(chǔ)存空間,也就是3.15兆。所以如果我們想要使用這些圖像作為紋理的話我們便需要準(zhǔn)備多出3倍的內(nèi)存。

類比:讓我們以一張呈現(xiàn)出你最喜歡的角色“buttman”并且不能***次使用的方形貼紙為例。

[[151108]]

sticker(from gamecareerguide)

你需要將這個(gè)新角色呈現(xiàn)給3個(gè)不同的人。所以你能夠:

1.獲得2張一樣的貼紙,獲得3個(gè)木質(zhì)框架能夠在上面貼貼紙,并且你將把這些木制框架遞交給那3個(gè)人。

2.讓那3個(gè)人去獲得屬于自己的木制框架并讓他們將貼紙貼到框架上。

第2個(gè)例子適合我們,因?yàn)槲覀兛梢苑磸?fù)使用同樣的貼紙。這也適用于軟件程序中,即所有人可以同時(shí)想到buttman。

3)不必要的迭代:比起多次調(diào)用,在資源中調(diào)用for/while循環(huán)更簡(jiǎn)單。你可以在一個(gè)循環(huán)中處理多個(gè)任務(wù)。

類比:你是一個(gè)間諜,并需要向3個(gè)遙遠(yuǎn)的不同場(chǎng)所運(yùn)輸包裹。并且你需要從這3個(gè)不同場(chǎng)所的不同boss那收集到重要的秘密信息。

因?yàn)槟闶菑牟煌琤oss那接到這些任務(wù),所以你可以:

1.根據(jù)不同boss去分配你的任務(wù)。例如你可以駕車前往所有的這3個(gè)場(chǎng)所并先完成boss A所分配的任務(wù),然后再駕車前往同樣的3個(gè)場(chǎng)所完成Boss B所分配的任務(wù)。反之亦然。

2.根據(jù)不同場(chǎng)所去分配你的任務(wù)。例如你可以先駕車前往***個(gè)場(chǎng)所,遞交包裹并獲得信息,然后再駕車前往下個(gè)場(chǎng)所。

如果你所制定的任務(wù)計(jì)劃是像第1種情況那樣的話你便是一個(gè)愚蠢的間諜,因?yàn)槟阈枰ㄙM(fèi)更多時(shí)間和資源去完成同樣的任務(wù)。

4)在內(nèi)存中保留未使用的對(duì)象:任何時(shí)候都只有一定的對(duì)象能夠被使用或出現(xiàn)在屏幕上。因?yàn)槲覀儞碛袃?yōu)先的內(nèi)存空間,所以任何被留在內(nèi)存里的額外對(duì)象都是在耗費(fèi)資源。

類比:你需要將一輛馬車從A點(diǎn)推到B點(diǎn)。讓我們假設(shè)如果馬車未負(fù)載任何東西或者載著最輕的東西,這便是一個(gè)較簡(jiǎn)單的任務(wù)。但是因?yàn)槟阆矚g啤酒,所以你選擇用馬車去載一桶啤酒,從而加重了自己任務(wù)的難度。

所以在這里的***解決方法便是放棄你所深愛的啤酒。

這里所列出的問題絕對(duì)超過我在一篇文章中能夠?qū)懴碌膬?nèi)容。作為一名開發(fā)者,你應(yīng)該盡快識(shí)別這些問題并使用有效的解決方法。先克服這些挑戰(zhàn)再發(fā)行產(chǎn)品是真正讓人興奮的游戲開發(fā)過程。每個(gè)人每一天只擁有24個(gè)小時(shí)。對(duì)于我們而言,人們能夠花費(fèi)這些寶貴的時(shí)間去嘗試我們所創(chuàng)造的內(nèi)容便是推動(dòng)著我們?nèi)ラ_發(fā)游戲的***動(dòng)力。

責(zé)任編輯:倪明 來源: 游戲邦
相關(guān)推薦

2009-04-07 11:24:16

Java開發(fā)注意事項(xiàng)

2011-05-16 16:11:21

java

2013-08-13 09:44:42

iOS 7開發(fā)者

2016-12-26 18:51:34

AndroidJavascriptJSONObject

2023-10-04 00:03:00

SQL數(shù)據(jù)庫

2012-07-04 14:40:37

Ajax

2024-05-16 15:15:14

2011-07-21 15:40:24

iPhone 內(nèi)存管理 對(duì)象

2010-12-31 09:14:36

MongoDB

2015-05-14 14:28:52

2023-07-27 18:39:20

低代碼開發(fā)編碼

2015-09-28 11:13:50

2016-11-24 15:54:06

androidJSONObject

2016-03-23 09:46:40

移動(dòng)前段開發(fā)

2013-06-28 14:19:20

2009-04-23 14:30:19

UML建模

2013-09-29 10:36:08

VMware虛擬化

2020-10-26 14:01:22

Java泛型

2021-02-05 17:35:07

數(shù)據(jù)高管CIO技術(shù)

2013-07-16 10:49:17

游戲開發(fā)手機(jī)游戲
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)