c# - 二进制文件解析 : performance

标签 c# file dll serialization

我有一个很大的二进制文件要解析,但我不确定要使用哪种语言来提高性能。最初,我打算使用 C# WPF 作为 GUI,并使用 c DLL 进行解析。但我的目标 PC 是 64 位机器。我在 VS 2008 中设置 C DLL 项目时遇到了麻烦。所以我在考虑是否应该转向 C++ 或 C# 来进行解析。我只是不确定 c++/C# 的文件读取速度,因为我的文件很大。速度非常关键。谁能给我一些建议? 谢谢。

最佳答案

与其关注语言(正如其他人提到的那样,影响不大),不如关注方法。

通常,我建议使用文件映射(在 .NET 4.0 中新的 MemoryMappedFile 类中可用)。这很好,除非您正在执行单程、仅向前扫描,这可以使用常规流来完成。

有一些提示表明非托管代码可以传递给未在 .NET 中公开的文件打开例程(具体来说,通知缓存管理器您将随机或按顺序访问文件)。不过,缺少这些可能不会给您带来明显的性能影响。

关于c# - 二进制文件解析 : performance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3137214/

相关文章:

c# - 在 C# MVC 的 Jquery 中使用 CSS 文件

java - 当我移动临时文件时,它会变成永久文件吗?

c - fgetc 函数无法正常工作

windows - 使用 Golang 1.10 编译 Windows DLL 时遇到问题

c# - 我可以通过 Javascript 与 .NET 库进行交互吗?

c# - 私有(private)类中的公共(public)字段 : "Field [FieldName] is never assigned to, and will always have its default value null"

c# - 如何将多个表达式传递给 EF 的 OrderBy?

c# - 异步套接字,在同一连接上接收多个文件

c++ - 在 Ruby 中调用 C++ 共享库

c - 如何使用 Visual Studio 在 C 中创建 DLL?