.net - Mono 实现 CLR 吗?或者至少有一些非托管内部调用?或无?

标签 .net performance mono ilspy

我们知道 C# 使用非托管代码(如 P/Invoke)或 CLR 实现的代码(如 InternalCall)。我想知道的是 mono 它自己实现了一个完整的 CLR 还是只是一些非托管代码或者什么都没有? 我可以使用.Net Reflactor或ILSpy来查看托管程序集,但有时由于性能问题我需要知道CLR如何实现一些非托管代码。例如:System.String.get_lenght() 是如何做的? 任何人都可以回答上述问题,或者欢迎提供一些有关此问题的信息。谢谢。

最佳答案

是的,mono 确实实现了整个 CLR,因此如果您查看其代码,您会发现诸如 String.get_Length() 之类的方法的实现。

但是 Mono 是与 Microsoft CLR 不同的实现。这意味着,如果您在 Mono 中查找 String.get_Length() 的代码,那么 Microsoft CLR 可能会采用完全不同的方式来完成同样的事情。

另一个选择是查看 Shared Source Common Language Infrastructure 。它来自 Microsoft,可能比 Mono 更类似于他们的 CLR 实现,但仍然不一样。最新的可用版本对应于.Net 2.0。

关于.net - Mono 实现 CLR 吗?或者至少有一些非托管内部调用?或无?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9321803/

相关文章:

sql - 这两个 MySQL 查询中哪个更有效?

java - LocalCache Guava ,优化更高的吞吐量

performance - MPI Alltoallv或更好的个人Send and Recv? (表现)

c# - 使用 XSD 的 XML 验证失败,而在线验证器通过

c++ - 扩展选择目录对话框

c# - SynchronizationContext Send() 应该是同一个线程?

.net - Powershell-查找和替换XML配置数据与注册表值

c# - 如何在不关闭应用程序的情况下关闭登录表单并显示主表单?

c# - 为什么 MS access odbc 在 C# 中返回数字而不返回字符串?

visual-studio-2010 - xbuild 和 F# (vs2010) 项目