用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
battle_Elf的公告
学习与编程,似乎是对立的。我不知道我这句话对不对,但我知道,这1年,我要一心一意备战奥赛,必须把编程,把数据结构和算法,放一放了。
文章分类
存档

原创  [细节] += & + 收藏

 某些算法函数最后几行操作都是一些数学运算,例如+ -。

这时候就有一个细节的问题了,比方说有一个加法函数:

public static long plus( long a, long b )                                                                                                                                   

函数体可以写成:

return a + b;

也可以写成:

a += b; return a;

那么,那种效率更高?

一下是用IL DASE分析的2个函数的结果:

前者:

  // 代码大小       9 (0x9)
  .maxstack  2
  .locals init (int32 V_0)
  IL_0000:  nop
  IL_0001:  ldarg.0
  IL_0002:  ldarg.1
  IL_0003:  add
  IL_0004:  stloc.0
  IL_0005:  br.s       IL_0007
  IL_0007:  ldloc.0
  IL_0008:  ret

后者:

  // 代码大小       12 (0xc)
  .maxstack  2
  .locals init (int32 V_0)
  IL_0000:  nop
  IL_0001:  ldarg.0
  IL_0002:  ldarg.1
  IL_0003:  add
  IL_0004:  starg.s    a
  IL_0006:  ldarg.0
  IL_0007:  stloc.0
  IL_0008:  br.s       IL_000a
  IL_000a:  ldloc.0
  IL_000b:  ret

之后我就不说了~~~~~~因为~~~~~~~~我~~我~~~~实在是不知道~~~~~~哪个更有效率~~~~~~

发表于 @ 2006年08月29日 14:17:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:[积累]using语句的作用 | 新一篇:[算法]连续正整数和的问题

  • 发表评论
  • 评论内容:
  •  
Copyright © battle_Elf
Powered by CSDN Blog