首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FCallAdd优化

FCallAdd优化
EN

Stack Overflow用户
提问于 2011-06-29 17:16:16
回答 1查看 111关注 0票数 1

This问题给十进制求和运算带来了一个优化点。但是,在十进制类型实现中,整个求和操作被推迟到外部函数:

代码语言:javascript
复制
[MethodImplAttribute(MethodImplOptions.InternalCall)]
private static extern void FCallAdd(ref Decimal result, Decimal d1, Decimal d2);

这意味着此方法是在CLR本身中实现的。现在ecall.cpp有了一个引用

代码语言:javascript
复制
FCFuncElement("FCallAdd", COMDecimal::DoAdd)

调用comdecimal.cpp函数

代码语言:javascript
复制
STDAPI DecAddSub(LPDECIMAL pdecL, LPDECIMAL pdecR, LPDECIMAL pdecRes, char bSign)

更新

根据下面的注释,优化发生在编译器本身。因此,我正在重新表述这个问题。有人能指出在哪里可以获得有关这些优化的信息吗?

EN

回答 1

Stack Overflow用户

发布于 2011-06-29 17:23:08

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6524678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档