我必须在下一个公司项目中使用.NET/C#。当我在Mac上开发我的项目时,我研究了mono的开发环境/工具。
Mac OS X的单声道是否足够快?我的意思是,与在windows机器下的.NET上运行相同的代码相比,运行程序集的性能如何?
在实际意义上开发C#/.NET是否必须购买PC笔记本电脑?
编辑:感谢您的回答。我认为我应该考虑的另一件事是兼容性问题和开发工具。我想问一下mono有多好;如果mono比windows .NET慢10倍,我最好不要用它。但是,如果单声道只慢1.5倍,为什么不呢?
发布于 2010-06-22 13:29:41
对于交互式应用程序,你通常不会注意到在同等硬件上Mono和.NET之间的任何性能差异。
您会注意到以下几点:
generational.
所有这些都是团队的重点领域,所以您很快就会看到这两种情况下的变化。我们正在开发一个新的GC,它是跨代的,就像.NET一样,预览将在2.8中首次亮相。
codegen引擎现在可以选择使用LLVM,在2.6中是可以的,在2.8中它将拥有99.8%的代码覆盖率(从目前的60或70)。可悲的是,LLVM导致JIT编译时间非常慢,所以我们只在"ngen“这样的场景中使用它,或者用于那些希望以启动速度为代价获得更好性能的程序。
使用LLVM,我们能够在大多数测试中匹配.NET和Java,但也有少数例外。
最后,OSX特定的限制正在进行中,也将在2.8中出现。
发布于 2010-06-09 01:57:46
直接回答你的问题:是的,Mono的性能对于在Mac上开发来说已经足够快了。几年前,当我们将远程处理代码从.NET移植到Mono时,事情发展得非常非常糟糕,但有人告诉我,从那时起,Mono已经有了很大的改进。关于开发环境:#develop和MonoDevelop是跨平台的。
现在让我们来看看实际情况:
这个问题背后的要点似乎是避免购买Windows许可证,而只使用Mac和Mono。这是个糟糕的主意。我永远不会发布任何产品,即使是在内部,我自己也从来没有在预期的环境中运行过。即使你讨厌Windows和它所代表的一切,如果你正在为Windows编写软件,你也有责任让你的用户在Windows中彻底测试它。
也就是说:我推荐Boot Camp和Parallels/VMWare。
训练营
最好的.NET开发工具仅限于Windows。即使你找到一个替补的开发人员。在您喜欢的环境中,您最终会想要测试以本机速度运行的应用程序。
虚拟机
VM对于大多数测试和调试来说已经足够好了。如果您的应用程序有可能造成任何破坏,您将特别希望使用VM进行沙箱。在我的上一份工作中,我们做了低级别的侵入性扫描和调整。当我们的代码有our时,我们会把事情搞得一团糟。我们所有的测试都是在VM上进行的,在我们把它们放到真正的机器上之前很久。
上面的允许你只拥有一台苹果电脑(假设它是基于英特尔的),如果你愿意的话,它仍然允许你在OS X+ Mono上进行所有的开发。它不会让你避开Windows.
发布于 2010-06-09 01:23:12
如果目标平台是Windows PC,那么我强烈建议您购买一台。不一定是为了开发(尽管这会让开发更容易),但绝对是为了测试和寻找bug。
编辑:我不是Mac爱好者,但你不能在虚拟PC或类似的操作系统上运行Windows吗?就.NET/C#而言,你很难找到比Visual Studio更好的IDE (个人意见)。
https://stackoverflow.com/questions/2999642
复制相似问题