外部排序的C#与Delphi速度

时间:2013-03-14 19:48:42

标签: c# delphi

我有一个500 + GB的文本文件。必须搜索重复项,删除它们,排序并保存最终文件。当然对于这样的大文件,LINQ或者其他东西都不好,不会工作,所以他们必须使用外部排序。有一个名为“发送安全列表管理器”的应用程序。它的速度非常快,对于200MB的txt文件,它可以在不到10秒的时间内得到结果。在使用“Greatis WinDowse”应用程序检查exe内部后,我发现它是用Delphi编写的。有一些用C#编写的外部排序类。我用它们测试了一个200MB的文件,所有都超过1分钟。所以我的问题是,对于这种计算,Delphi比C#更快,如果我必须自己编写,那么我应该使用delphi吗?用C#可以达到那个速度吗?

2 个答案:

答案 0 :(得分:6)

正确编写的大型文件的排序代码必须是磁盘绑定的 - 此时,您使用的语言基本没有区别。

答案 1 :(得分:6)

Delphi生成本机代码并允许内联汇编,因此理论上,在Delphi中可以更容易地达到特定算法的最大速度。

但是,您所描述的内容的性能将与IO性能相关联,并且可能的算法之间的性能差异将比Delphi与.NET的差异高出几个数量级。

如果试图提高速度,语言可能是你应该看的最后一件事。