【发布时间】:2011-04-30 15:07:42
【问题描述】:
我正在编写一个 C# 应用程序,该应用程序需要在启动时读取大约 130,000 个(字符串,Int32)对到字典。这些对存储在 .txt 文件中,因此任何人都可以轻松修改,这在上下文中是危险的。我想问一下有没有办法保存这个字典,这样信息可以合理安全地存储,而不会在启动时失去性能。我曾尝试使用BinaryFormatter,但问题是,虽然原始程序在启动时需要 125 毫秒到 250 毫秒才能从 txt 中读取信息并构建字典,但反序列化生成的二进制文件最多需要 2 秒,这还不算太本身很多,但与原始性能相比,速度降低了 8-16 倍。
注意:加密很重要,但最重要的应该是一种从磁盘(可能从二进制文件)保存和读取字典的方法,而不必在每一行都使用 Convert.ToInt32 ,从而提高性能。
【问题讨论】:
-
比 tp 慢 8-16 倍 什么,您目前使用什么?如果 BinaryFormatter 不是最快的,我会感到惊讶。
-
我正在使用 StreamReader 的
ReadLine()' method, and usingConvert.ToInt32` 从 .txt 文件中读取字符串作为整数。这两个操作中的每一个都在启动时完成了大约 131,000 次。
标签: c# performance serialization binary