c#与Delphi的外部排序速度



我有一个500+GB的文本文件。它必须搜索重复,删除它们,排序并保存最终文件。当然,对于如此大的文件,LINQ或类似的东西根本不好,无法工作,所以他们必须使用外部排序。有一个叫"发送安全列表管理器"的应用程序。它的速度非常快,对于一个200MB的文本文件,它在不到10秒的时间内给出结果。在使用"Greatis windows"应用程序检查exe内部后,我发现它是用Delphi编写的。还有一些用c#编写的外部排序类。我用它们测试了一个200MB的文件,都超过了1分钟。所以我的问题是,对于这种计算德尔福比c#快,如果我必须自己写,那么我应该使用德尔福吗?用c#我能达到那个速度吗?

为大文件正确编写的排序代码必须是磁盘绑定的 -在这一点上,使用什么语言基本上没有区别。

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

然而,你所描述的性能将与IO性能联系在一起,可能算法之间的性能差异将比Delphi与。net之间的差异高出几个数量级。

如果你想加快速度,语言可能是你最不应该看的东西。

最新更新