色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

for 循環(huán)性能比較 提高for循環(huán)的效率

for(int i=1,n=tempUser.length;i <n;i++)與
for(int i=1,;i <tempUser.length;i++)相比較,性能有較大的區(qū)別嗎,有必要采取這種寫法嗎,
習(xí)慣for(int i=1,;i <tempUser.length;i++),而且并沒有發(fā)現(xiàn)兩者的性能有較大差別,
我當(dāng)即就測(cè)試了一下,發(fā)現(xiàn)果然性能比較起來差別很小,甚至后者更高效一點(diǎn)。
雖然得出這樣的結(jié)果,但和自己心里想的確完全相反的。所有當(dāng)然就回復(fù)說差不多。
今天又發(fā)現(xiàn)一位前輩的blog中正好有對(duì)這個(gè)帖子的回應(yīng)。他做了測(cè)試,內(nèi)容大致是前面的帖子的問題應(yīng)該是差不多的,但是他又更深入的進(jìn)行測(cè)試,得出:在有情況for(int i=0;i<a.b.c.length;i++)的情況的時(shí)候,使用for(int i=0,n=a.b.c.length;i<n;i++)更加高效。
所有我也做了一下測(cè)試:
復(fù)制代碼 代碼如下:
class Program {
static void Main(string[] args) {
string s;
s = Console.ReadLine();

while(s != "0") {
Person p = new Person(10000000);

Console.WriteLine("for(int i=0;i<lenArray.length;i++)");
Console.WriteLine("Starting...");
long l1 = DateTime.Now.Ticks;

for(int i = 0; i < p.Child.Alias.Length; i++) {
//Console.Write(lenArray[i]);

}
long l2 = DateTime.Now.Ticks;

Console.WriteLine("Ending./nTime is : " + (l2 - l1).ToString());

Console.WriteLine("for(int i=0,n=lenArray.length;i<n;i++)");
Console.WriteLine("Starting...");

long l3 = DateTime.Now.Ticks;
for(int i = 0, n = p.Child.Alias.Length; i < n; i++) {
//Console.Write(lenArray[i]);

}
long l4 = DateTime.Now.Ticks;
Console.WriteLine("Ending./nTime is : " + (l4 - l3).ToString());
s = Console.ReadLine();
}
Console.Read();
}
}


其中數(shù)據(jù)量越大,類越大,差別越明顯。

結(jié)論:影響應(yīng)該在,變量在每次循環(huán)都要訪問下一級(jí)變量的原因。如果只是簡(jiǎn)單的a.length可能編譯器對(duì)這樣的循環(huán)操作有優(yōu)化,將a.length保存到了內(nèi)存或一個(gè)比內(nèi)存更塊的地方,而多級(jí)就沒有這么幸運(yùn)了。
我們都知道for(int i=0;i<a.length;i++)語(yǔ)句,i=0是運(yùn)行一次,而i<a.length和i++是每次循環(huán)都要做的工作。所有應(yīng)該盡量將訪問變量耗時(shí)間的操作放在第一個(gè);號(hào)前。

JavaScript技術(shù)for 循環(huán)性能比較 提高for循環(huán)的效率,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 宜丰县| 济宁市| 湟中县| 建平县| 桑日县| 桂平市| 宽城| 工布江达县| 凌源市| 珲春市| 平江县| 吉木萨尔县| 同仁县| 文成县| 克拉玛依市| 湘乡市| 凌源市| 宜兴市| 新乡市| 开平市| 阳西县| 渝中区| 清镇市| 济宁市| 辽中县| 榆林市| 邹平县| 永和县| 攀枝花市| 米易县| 辽宁省| 靖州| 密山市| 长武县| 大港区| 荆州市| 清远市| 衡阳市| 灌云县| 东港市| 雷波县|