【问题标题】:Fast CSV reader快速 CSV 阅读器
【发布时间】:2012-07-24 15:34:56
【问题描述】:

我正在处理一个项目,该项目实际上从 CSV 文件加载数据,对其进行处理,然后将其保存在磁盘上。为了快速读取 CSV 数据,我使用 Lumenworks CSV 阅读器http://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader。这工作正常,直到一个限制,但当我有大小为 1GB 或更大的 CSV 时,它需要时间。有没有其他方法可以更快地读取 CSV?

【问题讨论】:

  • CSV 来自哪里?是否有可能以更有效的形式获得它?
  • CSV 是微不足道的......我无法想象 CPU 使用率在 IO 时间内会很明显的场景。如果你能提供一些关于你实际在做什么的信息/代码,那将会很有用。
  • 1GB 的数据确实需要时间。这听起来像是 IO 限制...
  • 是的,很可能你已经超出了机器的能力,而不是库。哎呀。
  • 换一个更快的硬盘

标签: c#


【解决方案1】:

提供的信息不多...因此假设这是 IO 限制,您的选择是:

  1. 获得更快的存储 [例如SSD、RAID]。
  2. 尝试压缩 - 有时压缩所花费的时间 [例如 Zip] 会在 IO 中节省倍数。
  3. 尝试使用线程 - 如果进行复杂计算时特别有用 - 但在这种情况下可能不合适。
  4. 改变问题 - 你需要读/写一个 1GB 的文件吗?也许你可以改变数据格式[156比“156”小很多,也许你只需要处理更小的块,也许花的时间真的不重要等等。

还有其他人吗?

嗯,您可以尝试缓存输出,我已经尝试过 MemoryMappedFiles 和 RAM 驱动器...您可以通过一些简单的线程来实现...虽然这可能会更快返回,但它具有巨大的风险和复杂性

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多