国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

簡單代碼的性能差異

2024-07-21 02:17:07
字體:
供稿:網(wǎng)友

商業(yè)源碼熱門下載www.html.org.cn

《.net 框架程序設(shè)計》里的幾句代碼,我重新整理了一下,寫成函數(shù),這樣下面的反編譯代碼看起來更方便點:

public void boxing()
{
int32 v = 5;
console.writeline("{0},{1},{2}",v,v,v);
}
public void boxing1()
{
int32 v = 5;
object o = v;
console.writeline("{0},{1},{2}",o,o,o);
}兩個函數(shù)的輸出結(jié)果是一樣的,但是哪一個函數(shù)更好呢?

第一個顯然更簡單,但是在性能上第二個好,看看反編譯的代碼:
boxing函數(shù):
.method public hidebysig instance void boxing() cil managed
{
// code size: 31 byte(s)
.maxstack 4
.locals (
int32 v_0)
l_0000: ldc.i4.5
l_0001: stloc.0
l_0002: ldstr "{0},{1},{2}"
l_0007: ldloc.0
l_0008: box int32
l_000d: ldloc.0
l_000e: box int32
l_0013: ldloc.0
l_0014: box int32
l_0019: call void [mscorlib]system.console::writeline(string, object, object, object)
l_001e: ret
}



boxing1函數(shù)的:
.method public hidebysig instance void boxing1() cil managed
{
// code size: 23 byte(s)
.maxstack 4
.locals (
int32 v_0,
object v_1)
l_0000: ldc.i4.5
l_0001: stloc.0
l_0002: ldloc.0
l_0003: box int32
l_0008: stloc.1
l_0009: ldstr "{0},{1},{2}"
l_000e: ldloc.1
l_000f: ldloc.1
l_0010: ldloc.1
l_0011: call void [mscorlib]system.console::writeline(string, object, object, object)
l_0016: ret
}


第一個函數(shù)有三次裝箱操作,第二個只有一次,在內(nèi)存和時間消耗上都要小些。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 石棉县| 玉林市| 苗栗市| 宣化县| 图木舒克市| 弥勒县| 敦化市| 连南| 德钦县| 白玉县| 长治市| 九台市| 扶绥县| 象州县| 南京市| 河东区| 宜宾市| 溧阳市| 洛隆县| 塘沽区| 石台县| 留坝县| 沾化县| 黄龙县| 华阴市| 娱乐| 嘉定区| 禹州市| 台江县| 宁强县| 建水县| 吴川市| 青岛市| 松阳县| 自治县| 靖州| 夏河县| 江永县| 古浪县| 双江| 辛集市|