[英]Performance: Compile in VS, Run in Mono on Windows and Linux
我有以下问题:
谢谢
是的,你可以这么做。 它应该工作,除非代码使用一些未在mono上实现的框架元素。
不是我知道的。
不确定#3和#1之间的区别是什么。 如果你指的是在Windows上使用mono进行编译,然后将其移植到linux,它应该仍然可以正常工作。 两个编译器生成基本相同的IL代码。
1:
是。 编译器编译成IL代码,在任一系统中运行。
并非每个库都在Mono中实现,但那些库应该无缝地工作。 此外,必须将代码编写为独立于系统才能正常工作,例如:
Path.DirectorySeparatorChar
和Path.Combine
来形成文件路径,而不是使用字符串文字"\\"
或"/"
。 2:
编译器生成的代码可能存在一些差异,但几乎所有优化都是由JIT编译器完成的,而JIT编译器很少会产生任何可衡量的差异。
3:
exe和dll文件不包含本机代码,它们包含IL代码。 加载exe / dll时,本机代码由JIT编译器生成。
扩展其他答案:
对于第3点。是的,当使用MSCLR和Mono时会有性能差异,不,我不知道它会是什么。 也许什么都没有,也许很少,或者可能很快 - 你必须描述你的具体应用。
另请注意,尽管JIT编译器的代码速度很快,但库的实现方式却截然不同,几乎肯定会有不同的性能特征。
如果您计划在Mono下支持您的应用程序,则需要在那里运行性能测试以及MS CLR。
我不知道性能,但本文试图展示如何编译MonoDevelop工具在这下面。这应该让你知道差异将是什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.