gpt4 book ai didi

c# - FCallAdd 优化

转载 作者:太空宇宙 更新时间:2023-11-04 12:18:15 27 4
gpt4 key购买 nike

This问题带来了小数求和运算的优化点。然而,在 Decimal 类型实现中,整个求和操作被推迟到外部函数:

[MethodImplAttribute(MethodImplOptions.InternalCall)]
private static extern void FCallAdd(ref Decimal result, Decimal d1, Decimal d2);

意思是这个方法是CLR自己实现的。现在 ecall.cpp 引用了

FCFuncElement("FCallAdd", COMDecimal::DoAdd)

调用 comdecimal.cpp 函数

STDAPI DecAddSub(LPDECIMAL pdecL, LPDECIMAL pdecR, LPDECIMAL pdecRes, char bSign)

更新

根据下面的评论,优化发生在编译器本身。我正在改写这个问题。谁能指出我在哪里可以获得有关这些优化的信息?

最佳答案

您链接到的问题中的优化不是在此调用中执行的,而是由编译器完成的。编译器“知道”将 0.00m 添加到 decimal 不会执行任何操作,因此它生成的 IL 根本不包括 decimal 添加。换句话说,从未调用过 FCallAdd

关于c# - FCallAdd 优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6524678/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com