与从磁盘读取相比,嵌入文本文件的优势

时间:2016-05-25 18:07:25

标签: .net performance file-io text-files embedding

我有一个.net应用程序,它有一组(大约100个)打开的文本文件 - 读取 - 操作并在每次用户运行进程时保存为新文件。在某些情况下相同的"模板"文件可以在一个进程中使用数百次。所以它们基本上是我用来为我的应用程序创建所需文件的模板。目前我已将它们包含在我的项目的一个文件夹中,并且"复制Always"在我的解决方案中选择"复制到输出文件夹选项。所以它们在本地PC上被复制,存储和访问。

我的问题 - 将这些文件嵌入我的解决方案是否有优势?特别是如果嵌入文件而不是进入目录并打开文件并读取文件,IO进程会更快地运行...

另外如果你有任何关于做或不做的其他原因的意见,我想听听他们。这些文件将不时更新。我的理解是每次保存文件时都必须重新编译。使用这些文件的部分原因是为了避免这种情况,所以我希望提高性能,以弥补简单更新的损失。

谢谢

1 个答案:

答案 0 :(得分:0)

在这里输入的方式并不多,所以我进行了测试。 我想如果其他人想知道的话,我会分享结果。

我测试了打开嵌入文件的时间范围,读取它并将这些行保存到保存在本地PC上的新文件中并关闭嵌入文件。我设置一个循环1000次来调用这个例程,创建1000个文件需要11秒。

在另一个例程中,我打开了保存到本地磁盘的相同文件,而不是嵌入到可执行文件中,读取它并将其保存为本地PC上的新文件。也设置一个循环1000次来调用这个例程,花了2秒钟。

我多次运行并且每次都得到相同的结果。 我另外运行测试一个并看到结果并关闭应用程序重新启动并再次运行测试。我只是想确定内存中没有任何东西。结果每次都是一样的。

因此,简而言之,嵌入式文件的读取和写入时间比访问文件系统中的文件要长。