cel*_*cni 2 java serialization
我正在编写一个Java应用程序,其中包括需要读取字典文本文件(每行是一个单词)并将其存储在HashSet中.每次我启动应用程序时,都会再次读取同一个文件(6兆字节的unicode文件).
这似乎很昂贵,所以我决定序列化生成的HashSet并将其存储到二进制文件中.我希望我的应用程序在此之后运行得更快.相反,它变得更慢:从序列化之前的约2.5秒到约5秒.
这是预期的结果吗?我认为在类似的情况下序列化应该提高速度.
这不是一个序列化机制或其他机制的问题,而是您要序列化的数据结构的问题.
您可以在文本文件中使用这些单词的一个非常有效,自然的表示形式:一个简单的列表.这很快就读了.
您已经创建了一个数据结构来存储它们是不同的:哈希表.表示哈希表需要更多内存.然而,与简单列表相比,它的好处是,查找单词的速度非常快.
但这种权衡意味着序列化也会变慢,因为哈希表的天真序列化将序列化更多数据并且更大,因此更慢.
我认为你应该坚持阅读文本文件.
归档时间: |
|
查看次数: |
1689 次 |
最近记录: |