成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

兩種J2ME代碼優(yōu)化解決方案

開發(fā) 前端
J2ME代碼優(yōu)化的技術(shù)大致分為兩個(gè)主要方面:高級(jí)優(yōu)化,從使用的整體算法和結(jié)構(gòu)出發(fā)進(jìn)行的優(yōu)化;低級(jí)優(yōu)化,集中于孤立的代碼片斷(通常為方法中的代碼)的優(yōu)化。

這里向大家簡(jiǎn)單介紹一下J2ME代碼優(yōu)化技術(shù),主要包括高級(jí)優(yōu)化和低級(jí)優(yōu)化兩個(gè)部分,下面分別詳細(xì)討論一下這兩方面的優(yōu)化。

J2ME代碼優(yōu)化

對(duì)J2ME代碼進(jìn)行優(yōu)化的最簡(jiǎn)單辦法就是首先不要調(diào)用這些代碼。這并不是說(shuō)要?jiǎng)h除這些代碼,也許可以用其他辦法來(lái)調(diào)用它們(后者事實(shí)減少對(duì)它的調(diào)用)。游戲的主循環(huán)是游戲運(yùn)行的最主要做的事情,應(yīng)該更多地考慮是否可以不用或減少對(duì)屬于這個(gè)區(qū)域內(nèi)的代碼的調(diào)用。下面的內(nèi)容是參考了其他資料整理出來(lái)的優(yōu)化代碼的方法。

J2ME代碼優(yōu)化的技術(shù)大致分為兩個(gè)主要方面:高級(jí)優(yōu)化,從使用的整體算法和結(jié)構(gòu)出發(fā)進(jìn)行的優(yōu)化;低級(jí)優(yōu)化,集中于孤立的代碼片斷(通常為方法中的代碼)的優(yōu)化。下面分別討論兩方面的優(yōu)化:

一、高級(jí)J2ME代碼優(yōu)化

1,感覺(jué)到就是真實(shí)

對(duì)于電影來(lái)說(shuō),我們通過(guò)攝像頭看到的都是***的,而在拍攝現(xiàn)場(chǎng)我們看到的卻是木頭,泡沫和膠帶。所以對(duì)于電影來(lái)說(shuō),感覺(jué)到就是真實(shí)。
游戲也一樣,只需要處理游戲需要的東西。在游戲開發(fā)的各個(gè)方面這都是實(shí)用的。把精力集中在使游戲有趣和***運(yùn)行的問(wèn)題上,始終只做需要做的而丟棄其他的部分。

2,不要?jiǎng)?chuàng)建對(duì)象

減少對(duì)象創(chuàng)建的總數(shù)量和頻率,結(jié)果能夠大大地提高游戲的性能。還必須小心在不經(jīng)意的情況下產(chǎn)生String對(duì)象。
例如:graphics.drawString(0,0,”Score:”+score);
這一句代碼會(huì)在每次被調(diào)用的時(shí)候產(chǎn)生一個(gè)新的String對(duì)象,在這里就是每一楨畫面顯示時(shí)都會(huì)產(chǎn)生新的String對(duì)象。因此***是只是在分?jǐn)?shù)改變的時(shí)候才構(gòu)造這個(gè)String。

3,繪制屏幕

通常,在對(duì)游戲完成大量的優(yōu)化工作以后,收獲的將是一個(gè)大量時(shí)間耗費(fèi)在屏幕繪圖上的游戲。這是因?yàn)橐粋€(gè)游戲的主要時(shí)耗大都集中在繪制圖像的工作上(或其他的一些基本的繪圖調(diào)用)。因此,如果一開始就可以避免繪制工作,那將是對(duì)游戲的很好的優(yōu)化。
還有就是要減少屏幕繪制,循環(huán)檢測(cè)屏幕圖像是否在某個(gè)部分發(fā)生了改變,如果沒(méi)有,就不要對(duì)那部分的屏幕進(jìn)行更新。另一個(gè)方法就是增加繪制圖像的尺寸來(lái)減少單獨(dú)的繪制調(diào)用的次數(shù)。

4,算法

***的,也是使用最多的高級(jí)優(yōu)化是對(duì)游戲的算法方面。#p#

二、低級(jí)J2ME代碼優(yōu)化

1,提前繪制復(fù)雜圖像

我們已經(jīng)知道,使用LCDUI繪制圖像是很慢的,因此***是能夠避免這種繪制。其中的一個(gè)方法就是用一個(gè)預(yù)生成圖像來(lái)減少?gòu)?fù)雜圖像的繪制。進(jìn)一步來(lái)講,舉例:將所有的游戲狀態(tài)信息整合到一個(gè)面板中(得分,生命數(shù),能量值等),然后對(duì)這些信息進(jìn)行一次性同時(shí)更新。

2,保持類和內(nèi)存之間的平衡

產(chǎn)生新的類會(huì)增加JAR包文件的大小,因此應(yīng)該盡量避免。有的時(shí)候增加了額外類的開銷可能節(jié)省了額外的內(nèi)存開銷,這也是值得的。

3,復(fù)雜值的預(yù)計(jì)算

節(jié)省運(yùn)算的一個(gè)好方法就是對(duì)數(shù)值進(jìn)行預(yù)運(yùn)算,從而無(wú)需再調(diào)用大開銷的計(jì)算方法。一個(gè)很好的例子就是:主窗口畫布的高度和寬度就是很好的緩存對(duì)象。例如:可以調(diào)用getHeight方法和getWidth方法一次,然后將它們的結(jié)果緩存起來(lái),而不是在每一次繪圖中都調(diào)用這兩種方法。

4,使用數(shù)組

在任何時(shí)候,只要可能,都應(yīng)該使用數(shù)組而不是Vector,因?yàn)閿?shù)組的運(yùn)行速度更快。通常面臨的唯一問(wèn)題是,如果最初分配的數(shù)組空間不夠大,將需要對(duì)數(shù)組的大小進(jìn)行擴(kuò)充。這可以做到,但它需要對(duì)整個(gè)數(shù)組進(jìn)行重建。例如: 

  1. Publicfinalstaticint[]expandArray(int[]oldArray,intexpandBy)  
  2. {  
  3. int[]newArray=newint[oldArray.length+expandBy];  
  4. System.arraycopy(oldArray,0,newArray,0,oldArray.length);  
  5. ReturnnewArray;  
  6. }  

 任何時(shí)候,都應(yīng)該盡量使用一維數(shù)組。訪問(wèn)二維數(shù)組變量的速度只有訪問(wèn)一維數(shù)組變量的一半。當(dāng)然,仍然可以訪問(wèn)二維數(shù)組的對(duì)象,只是需要加入一點(diǎn)點(diǎn)計(jì)算。例如,與其使用這條語(yǔ)句:
world[y][x]=0;
不如下面這條語(yǔ)句運(yùn)行的快:
world[y*tilesWide+x]=0;
這條語(yǔ)句通過(guò)行列的位置將數(shù)值轉(zhuǎn)換成一維值,實(shí)現(xiàn)了對(duì)數(shù)組同一元素的訪問(wèn)。

5,不要使用數(shù)組

呵呵,盡管數(shù)組的訪問(wèn)比Vector快,但仍然比直接訪問(wèn)變量要慢,因此如果可能就應(yīng)該刪除對(duì)數(shù)組的訪問(wèn),或者為一些常用方法中的數(shù)組尋求其他能提高性能的辦法。

6,使用快速方法

并不是所有Java調(diào)用的方法在性能上都是相同的,方法聲明方式的不同對(duì)性能會(huì)會(huì)產(chǎn)生很多的影響。可以使用的最快的方法類型是靜態(tài)方法,因此應(yīng)該盡可能多地將代碼置于靜態(tài)調(diào)用方法中。運(yùn)行速度僅次于靜態(tài)方法的是聲明為final的方法。運(yùn)行最慢的兩種方法是在接口中定義的方法和用關(guān)鍵字synchronized聲明的方法,必須盡可能地避免使用這些類型的方法。

7,其他優(yōu)化

1)異常處理非常緩慢,不要為一半的游戲邏輯使用異常,只用它們來(lái)報(bào)告真正的錯(cuò)誤狀態(tài)。
2)使用switch表達(dá)式比使用if條件語(yǔ)句塊的速度要快。
3)盡可能避免使用String對(duì)象進(jìn)行運(yùn)算,使用StringBuffer。
4)內(nèi)嵌類的運(yùn)行很慢,盡可能避免使用。
5)在完成一個(gè)引用的使用后將它設(shè)為null。
6)不要浪費(fèi)時(shí)間來(lái)將一個(gè)對(duì)象初始化為null或0,java虛擬機(jī)會(huì)替我們完成這樣的初始化
7)多思考新方法,這會(huì)使我們的大腦運(yùn)轉(zhuǎn)的更快。
8)如果可能,盡量使用static,它們運(yùn)行都很快。它同時(shí)適用于方法和域,這條規(guī)則就是,如果它可以是靜態(tài)的,那么就把它聲明為靜態(tài)的。
9)避免類型轉(zhuǎn)換。

【編輯推薦】

  1. J2ME代碼優(yōu)化的兩種方案
  2. J2ME Snake腳本引擎使用手冊(cè)
  3. 基于J2ME圖形技術(shù)特效
  4. 技術(shù)分享 如何識(shí)別控制DHTML和JS中的頁(yè)面元素
  5. 深入學(xué)習(xí)JavaScript中Function對(duì)象語(yǔ)法 
責(zé)任編輯:佚名 來(lái)源: blog.sina.com.cn
相關(guān)推薦

2010-09-29 10:10:06

J2ME代碼優(yōu)化

2010-09-29 09:59:22

J2ME配置

2010-07-26 10:56:32

J2ME平臺(tái)

2010-09-29 08:57:04

J2ME前景

2010-09-29 09:19:39

J2ME開發(fā)工具

2010-09-30 16:13:13

J2ME應(yīng)用程序

2010-09-30 13:28:55

J2ME圖形

2009-06-23 11:30:16

RMSJ2ME

2009-03-22 09:38:03

Android移植J2ME

2010-09-30 09:56:26

J2ME Polish

2009-06-08 21:34:09

J2EEJ2SEJ2ME

2010-03-26 18:41:51

Nginx 502錯(cuò)誤

2010-09-30 14:35:36

JS浮點(diǎn)溢出

2010-09-29 09:45:01

J2ME應(yīng)用程序

2009-06-10 16:27:54

Eclipse調(diào)試J2

2010-09-29 13:50:31

J2MEJ2SE

2010-02-04 13:15:59

Android J2M

2009-05-26 17:35:40

J2ME軟件簽名證書

2011-09-01 16:45:15

J2MELua

2010-09-29 09:13:48

J2ME開發(fā)環(huán)境
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 在线观看视频一区 | 日本h片在线观看 | 欧美13videosex性极品 | 亚洲天堂久久 | 日韩不卡在线 | 888久久久| 欧美一级观看 | 超碰网址 | 综合二区| 中文亚洲视频 | 国产精品激情 | 国产在线观看一区二区 | 日本天天操 | 中文字幕第十五页 | 成人精品国产免费网站 | 999免费观看视频 | 精品一区二区三区四区视频 | 在线国产视频 | 国产精品久久久久久久久久免费看 | 亚洲欧美中文日韩在线v日本 | 亚洲精品2 | 欧美一区二区三区在线播放 | 成人一区二区三区在线观看 | 国产成人久久 | av激情在线 | 亚洲精品乱码久久久久久黑人 | 欧美激情一区二区三区 | 国产线视频精品免费观看视频 | 国产福利在线免费观看 | 超碰在线免费 | 中文字幕av第一页 | 欧美综合视频 | 精品国产乱码久久久久久闺蜜 | 男女羞羞视频免费 | 在线一区二区三区 | 国产va| 亚洲男人网 | 亚洲一区二区三区乱码aⅴ 四虎在线视频 | 国产一区视频在线 | www..99re| 成人免费视频网站 |