性能:编译在VS,在Windows和Linux的单声道运行(Performance: Compile

2019-09-23 22:56发布

我有以下问题:

  1. 是否有可能用VS.NET编译C#项目,并在单运行呢?
  2. 是否有与方法1(VS与单声道编译器编译)相关联的所有性能优势?
  3. 怎么样在Linux上运行的输出的.exe / .dll? 和什么相关的性能特点?

谢谢

Answer 1:

  1. 是的,你可以这么做。 它应该工作,除非该代码使用上未实现的单框架的一些元素。

  2. 这并不是说我知道。

  3. 不知道之间#3,#1的区别是什么。 如果你指的是使用单声道到Windows上编译,然后将其移植到Linux,它仍然应该工作一样。 两种编译基本上产生相同的IL代码。



Answer 2:

1:
是。 编译器编译成IL代码,它运行在任一系统。

不是每个库在单声道实现,但那些应该无缝协作。 此外,该代码已被写入到被影响无关系统的正常工作,例如:

  • 使用Path.DirectorySeparatorCharPath.Combine形成的,而不是使用字符串文本文件的路径, "\""/"
  • 使用BitConverter类做字节操作是大端/小端achitecture的影响无关。

2:
有可能是在什么样的代码编译器产生一些差异,但几乎所有的优化是由JIT编译器应该很少作出任何可测量的差异来完成。

3:
该EXE和DLL文件不包含本机代码,它们包含IL代码。 本机代码由JIT编译器被加载的exe / DLL时生成的。



Answer 3:

为了扩大在别人的答案:

对于第3点是会有的性能差异使用MSCLR VS单时,并没有,我不知道它是什么。 也许没有,也许很少或者也许是一个大大快 - 你必须配置您的具体应用。

还要注意,指出,尽管通过JIT编译器使得代码的速度,库将非常不同的方式实现,并几乎肯定都会有不同的性能特点。

如果你打算在Mono下支持你的应用程序,你需要有运行性能测试以及MS CLR。



Answer 4:

我不知道性能,但本文试图说明如何编译MonoDevelop的工具下与这应该给你一些想法,以什么样的差异会。



文章来源: Performance: Compile in VS, Run in Mono on Windows and Linux