![]() |
1
4
我认为不可能做你想做的事。这是因为IL仅在JIT(即时)编译期间使用。当该方法运行时,IL已被转换为本机机器代码。因此,虽然可以静态地计算给定方法/类型/程序集中的IL指令数,但在运行时没有这方面的概念。 您还没有说明您打算了解将被解释的IL指令的数量。考虑到方法体的IL计数与机器代码指令的实际数量之间只有松散的相关性,我看不出知道这个数字能实现什么(除了满足您的好奇心)。 |
![]() |
2
1
这可不容易。我 您可以使用在IL块之后执行的性能计数器代码对汇编后编译进行指令插入。例如,如果方法的某个部分将int加载到堆栈中,然后在优化代码下使用该int执行静态方法,则可以记录int加载和调用的计数2。 即使使用现有的IL/托管程序集读/写项目,这也是一项非常艰巨的任务。 当然,计数器记录的一些指令可能会在实时编译到x86/ia64/x64的过程中得到优化,但如果您试图基于抽象语言(如IL)进行评测,就必须冒这个风险。 |
![]() |
3
1
你可以用 ICorDebug 然而,我不确定这个指标有多有用,人们倾向于用时间来做这类事情。一些IL指令比其他指令更昂贵。 |
![]() |
4
0
安装插件。选择程序集并加载方法度量。它将向您展示一个包含代码大小、循环复杂度、指令类型等的网格。 |
![]() |
5
0
我知道你不想要静态计数。但是,每个arc的静态IL计数,加上arc一起执行的次数,可以得到IL计数。为此,您需要为每个弧插入仪器,这需要插入一个计数器。 (arc是不能跳入或跳出的指令序列。如果执行第一条指令,则始终会执行最后一条指令,以此类推。) |
![]() |
Megadardery · 如何测试两种算法并确定哪种算法更快? 7 年前 |
![]() |
em1031 · 查找上一期价值的最快方法? 7 年前 |
![]() |
Dusol · 使用多核时是否可能超出带宽限制? 7 年前 |
![]() |
ezekiel · C与Python/numpy的数学表现较差 7 年前 |
![]() |
Chris · OutOfMemoryError:GC开销限制超过标准 7 年前 |
|
user8477039 · 在Ruby/Rails中处理大型数据集导入 7 年前 |