【发布时间】:2016-11-27 01:53:35
【问题描述】:
我有一个实时项目,对某个文本文件的每一行都有繁重的处理,您对存储该文本有什么建议?
我现在要做的是将所有文本文件存储在 char* 变量中,然后使用该变量而不是文件,我的问题是当文本变大时我该怎么办?并且有可能达到char数组的限制,内存堆会变大:(
我想到的另一个解决方案是,每次我想要特定的文本行时,我都会遍历文件并阅读它,然后使用它,但是这种解决方案使我的程序变得如此缓慢,正如我之前提到的,时间对我来说很重要,你们有什么建议?
有没有其他足够快的方法让我可以使用它?
【问题讨论】:
-
您没有提到使用了哪个 RTOS(或者您的“实时”只是“应该很快”)。它可能有内存映射文件。
-
@KIIV 它应该是快速的 :)
-
这真的取决于情况或文件是什么。如果您想真正提高性能并且情况允许,我建议提前将文件解析为更快的内部数据结构而不是原始文本。如果文件很大以至于内存会受到限制,我建议将其解析为具有适当索引并在数据库上操作的数据库。无论哪种方式,如果可以的话,我现在绝对建议使用
std::vector<char>或std::string而不是char *。从短期和长期来看,它可能会让你的生活更轻松。
标签: c++ text-files processing-efficiency cpu-speed