2014-12-04 75 views
-4

我们在服务器端的服务中有一个大型的树状结构,它有几千万个节点。整个trie需要大约4个RAM的演出。到目前为止,我们只使用基本的二进制.NET序列化来将trie存储在一个文件中并将其重建回内存中。但它太慢了......在我们的例子中,有什么更好的序列化算法,某种类似于直接mmap的技巧会很棒,但.NET不允许定制内存分配器。目标是最小化保存,特别是从文件中加载特里(文件大小不是我们关心的)。快速的.NET序列化程序,用于大型树状结构

注意:由于延迟,我们绝对不能使用关系数据库。

更新:好的,我们发现了类似的问题Persisting a trie to a file - C。 C社区似乎更适合这类问题;)=>接受protobuf.net解决方案。

+0

数据库太慢了。对不起,伙计们,特里:http://en.wikipedia.org/wiki/Trie – eeq 2014-12-04 23:11:40

+0

@DJKRAZE在做出不好的编辑之前,请学习算法。 – eeq 2014-12-04 23:12:13

+0

@john:某些数据结构(如高程地图)在数据库结构中不合适。 – 2014-12-04 23:14:10

回答