C# I/O 与 C I/O

标签 c# c++ c io

我有一个 C# 程序,需要从平面文本文件中读取数千万到数亿条记录。使用对非托管 C/C++ dll 的 p/invoke 调用来处理单独线程上的所有文件输入是否会带来显着的性能增益,或者性能增益是否微不足道,因此最好只处理我的文件 IO 在 C# 中?

最佳答案

使用 C/C++ dll 可能不会显着提高性能。 C# 运行在具有相当高效的 JIT 编译器的环境中,因此我的猜测是代码性能受到大约 100 MB/s 的硬盘读取速度的限制。当然,如果您有 SSD,您的情况可能会有所不同。

请注意,如果一条记录是例如1000 字节,您正在读取 1 亿条记录,这意味着 100 GB。由于硬盘速度较慢,读取需要1000秒,即超过15分钟。

关于C# I/O 与 C I/O,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29175156/

相关文章:

c# - 为什么透明颜色在面板上不起作用

c# - 平滑鼠标 move

c# - Entity Framework 的读/写方法约定。 Controller 与 DbContext?

c - 将结构指针传递给 C 中的函数时出现奇怪的错误

c - C 中 union 的值

c# - 如何在每3位数字后向左插入一个逗号并显示2位小数

c++ - 在函数中创建新对象 - C++

c++ - 调试时的信号

C 字符串输入溢出其他字符串输入

c++ - 在 C++ 中将对象传递给抽象类型的构造函数