最近在研究IL,发现一个奇怪的现象,代码说明如下:

方法一:

Code

方法二:

Code

方法一的IL:

Code

方法二的IL:

Code

方法一的最大栈是8,方法二的最大栈是1,很明显, 方法二的IL行数比方法一多,且两个方法基本执行了相同的命令,按理说方法二的CLR编译并执行的时间更长,但最大栈数却比方法一少。这难道是IL的以时间换空间思想?

注:经测试,两个方法的实际执行时间基本相同。