是F#编译器的把戏吗?
|
我创建了一个程序来计算变量包括表达式(例如\“ x \”,\“ x + 1 \”,\“ sin(x)\”)的积分
当我在vs中调试时,我的计算过程非常缓慢
但是当我打开输出execute(在bin / debug /中)时,我得到了相当不错的速度,结果几乎立即出现了,当然等于我通过上述测试得到的结果
请告诉我那是什么把戏,为什么会发生呢?
如果可以的话,请指导我计算任意var-expression积分的算法
非常感谢,我非常喜欢堆栈交换^^
没有找到相关结果
已邀请:
3 个回复
慷祈霖黑
肺鬼耙扮群
原因是数组的构造函数清除了内容,因此该操作是多余的。但是,在调试时,您可能需要逐步遍历代码,以便将其保留下来。 此外,在高性能部分中,由于其他所有操作都是NOP,因此通常会降低50%的速度,该操作什么都不做,但仍然需要一个时钟周期。这些NOP是使断点起作用的功能,但如果未附加调试器,JIT将不会发出断点。 注意,我的意思是概括性的,编译器和JIT的实际交互要复杂一些。
辟官陡板休