Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在一个术语下存储大量键/术语值的erlang模块中,性能最好的是什么_Erlang - Fatal编程技术网

在一个术语下存储大量键/术语值的erlang模块中,性能最好的是什么

在一个术语下存储大量键/术语值的erlang模块中,性能最好的是什么,erlang,Erlang,通过关注读取性能,我想创建一个术语,例如Orddict或Proplist,其中包含大量(100000)条目,每个条目都包含一个ID和一个术语值。这个封装术语应该能够返回存储在其键下的值,就像Orddict一样 example: K001 - Term001 K002 - Term002 K003 - Term003 包含整个集合的结果项需要从一个函数传递到另一个函数,用于多种计算目的,而无需将其存储在持久性存储中以避免磁盘I/O。我还选择在这一阶段不使用内存缓存,以避免此时的体系结构复

通过关注读取性能,我想创建一个术语,例如Orddict或Proplist,其中包含大量(100000)条目,每个条目都包含一个ID和一个术语值。这个封装术语应该能够返回存储在其键下的值,就像Orddict一样

example:

 K001 - Term001
 K002 - Term002
 K003 - Term003
包含整个集合的结果项需要从一个函数传递到另一个函数,用于多种计算目的,而无需将其存储在持久性存储中以避免磁盘I/O。我还选择在这一阶段不使用内存缓存,以避免此时的体系结构复杂性,因此,我的重点是所有这些都是简单的关键字搜索

OrdDict是按键排序的,与普通Dict相比,它增强了对键的搜索。我不知道有任何其他Erlang模块可以在其期限内嵌入更高效的索引机制


关于比Orddict更好的方法的任何建议?

实际上,
Orddict
是作为排序列表()实现的,因此它在插入和查找方面的性能都很差,特别是在按升序插入键时。远离它;它不适用于您的用例
dict
是一种基于散列的数据结构,提供可靠的插入/查找性能。如果键的顺序对你很重要,考虑使用基于树的映射(例如<代码> GBBROSSUTION/COD>),因为你可以通过按顺序遍历树来提取一个有序的密钥序列。

< P>如果你想在Erlang进程之间共享一个大的数据集,你可以尝试使用。 它是内存键值存储,只支持破坏性更新