0

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

4

2 回答 2

6

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

于 2013-03-14T19:53:44.030 回答
6

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

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

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

于 2013-03-14T20:05:02.737 回答