1

我使用 ETS 类型的表ordered_set,并且行看起来像{{integer_value, string}}(基本上它没有值,只有键)。

当我执行ets:select(tab, [match_spec])时,match_spec所做的是选择所有行,其中integer_value满足大于和小于理解。

我想知道,我是否受益,而不是扫描整个表,而是在对数时间内找到下限和上限,然后获取介于两者之间的所有元素,就像我对 SQL 表所期望的那样,或者这样的功能在 ETS 中没有实现并且没有使用ordered_set而不是普通的特别好处set

4

1 回答 1

1

简单的方法是使用timer:tc/3函数来获取函数或 ets 模块函数的执行时间。
您可以使用fprofeprof分析您的代码,以了解调用了什么函数以及执行它需要多少时间。
这可以帮助你。
如果您不熟悉 erlang 分析器,我可以展示 etssetordered_set分析器的简单示例。

于 2017-04-01T21:10:29.313 回答