对于受CPU限制的进程,VB.NET是否比VB6提供了任何性能改进?

时间:2012-01-25 15:04:46

标签: vb.net performance vb6 vb6-migration

我正在研究用VB6编写的数学模型。这个模型消耗的CPU时间正在成为我们的一些客户关注的问题,并且已经浮出水面,将其移植到VB.NET将改善其性能。

该模型正在执行大量的单精度算法(大型网格上的有限差分格式),每隔五秒左右就会有少量数据库访问(不够重要)。仅涉及偶尔使用^ 4运算符的基本算术函数。

是否有人认为移植到VB.NET可能会改善(或不)?有没有人知道我可以查看的任何可靠的文章或论文来帮助做出这个决定?

5 个答案:

答案 0 :(得分:5)

我的观点是VB.Net到目前为止还不会提高性能。您可以通过优化算法进行改进。

答案 1 :(得分:2)

可以获得的最佳性能提升是消除数据库访问(即使它看起来不重要I / O通常是瓶颈,而不是语言本身)。如果可能的话,请提前获取数据并将其保存在最后,而不是每5秒访问一次。

正如其他人所指出的那样,如果可能的话更改算法,因为将代码移植到.NET可能只会带来很小的性能好处。

但是如果你把它改成.NET 4.0,你可以使用并行扩展,并且通过使用多个核心来获得提升。 http://msdn.microsoft.com/en-us/library/dd460693.aspx,但这也意味着,更改算法

希望它有所帮助。 ; - )

答案 2 :(得分:1)

我认为内存管理的改进提高了VB.NET的性能

答案 3 :(得分:1)

为了给你一个正确答案,我们应该检查你的代码......

但理论上VB.NET当然应该更具性能:

  1. 可以在64位计算机上编译(不需要太多努力)
  2. VB6被解释,VB.NET几乎被编译
  3. 您可以使用线程(取决于您的算法)和其他"技巧",这样您就可以使用更多的CPU来并行计算
  4. 最好的尝试:将应用程序中耗费大部分CPU的部分移植到VB.NET并进行比较。

答案 4 :(得分:1)

相同的算法在VB6中执行速度更快,因为它是用母语编译的。 如果程序具有大量的内存分配,那么在64位环境中运行时,它可能在.NET中执行得更快。