gpt4 book ai didi

c# - CLR内部调用用什么语言编写?

转载 作者:行者123 更新时间:2023-12-04 16:14:48 24 4
gpt4 key购买 nike

在Pro .NET Performance-优化您的C#应用​​程序中第86页的底部,它讨论ValueType.Equals()的实现,并说:

The definition of CanCompareBits and FastEqualsCheck is deferred to the CLR, they are "internal calls", not implemented in IL



“内部调用”到底是什么?如果不是IL,它们用什么语言实现?

最佳答案

像上面提到的CanCompareBitsFastEqualsCheck这样的方法都用[MethodImpl(MethodImplOptions.InternalCall)]标记,这通知clr需要在其内部查找实现。就CLR而言,它称为FCall,请参阅Calling from managed to native code

由于coreclr是开源的,因此很容易在github上找到实际的实现。
有关FastEqualsCheck的信息,请参见comutilnative.cpp
CoreCLR是用C++和Mono编写的,因此所有此类内部调用的所有代码都是C/C++。

在运行时,与将生成IL(中间语言)的常规.net代码相反,此类内部调用是与平台相关的assember指令

关于c# - CLR内部调用用什么语言编写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59340645/

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