构建CPU密集型C#应用程序在Linux上使用(通过.mono)是一个坏主意吗?

时间:2013-09-17 07:26:58

标签: c# linux performance mono

我想我要问的是在Mono下运行我的应用程序会对性能造成不利影响吗?请注意,除了访问本地关系数据库(可能是MySQL)之外,应用程序并不需要执行任何操作。

编辑:应用程序旨在使用从数据库查询的数据进行内存中的工作。数据库本身不应该成为瓶颈。

此外,“工作”将是多线程的(并且必须预期)与“串行”一样多“并行”,如果这有意义的话......

编辑2:由于该产品目前尚未进入长期规划阶段以开始开发,因此尚未完成分析,但该计划是在预期可能使用的情况下制作的,这使得这种设计大部分都是内存密集型的(因此最终允许数据库本身做尽可能多的工作,理想情况下)。但是,必须预计会出现“连续”工作(即数字运算)的情况,但我的目标是尽可能地消除这些情况。

编辑3:通过数字运算,我的意思是字面上任何数学公式被序列化到数据库中并被调用以表示某种抽象数据。然而,我(最终)的大多数工作都是为了尽量减少这种情况。

2 个答案:

答案 0 :(得分:2)

您的问题表明您认为Mono是某种.NET 仿真,就像wine是Win32仿真一样。这是的情况 Mono是.NET框架的本机实现,因此没有理由认为它应该基本上和/或通常比Windows上.NET框架的实现慢。

答案 1 :(得分:-3)

这是一个坏主意。我将我的应用程序移植到单声道,它不能正常工作: 1. Mono在线程方面不稳定(尝试加载许多线程并查看它是如何下降的) 2.单声道与表格不符合预期 3.您正在构建CPU密集型应用程序,Mono非常慢(以及.NET),因此请使用cpp,Python或其他内容。