2017-04-01 65 views
1

我使用類型爲ordered_set的ETS表,並且行看起來像{{integer_value, string}}(基本上它沒有任何價值,唯一的關鍵)。對``````````````````````````語句使用`ordered_set`有利於降低時間壓力

當我執行ets:select(tab, [match_spec])時,match_spec所做的是選擇所有行,其中integer_value符合大於和小於理解。

我想知道,是否有益於掃描整個表格,而不是掃描整個表格,在對數時間內找到下限和上限,然後獲取所有元素,就像我期望從SQL表中獲得的,或者這種功能在ETS中未實現並且使用ordered_set而不是普通set沒有特別的好處?

回答

1

簡單的方法是使用定時器:tc/3獲取您的功能或ets模塊的功能執行時間的函數。
您可以配置文件使用fprofeprof代碼爲undestanding它需要什麼功能調用,多少時間執行。
這可以幫助你。
如果你不熟悉二郎分析器,我可以告訴ETS setordered_set與剖析的簡單例子。

+0

我已經發現(的話題最後更新於2011年在:))'ets'掃描整個表,無論什麼時候,只要將垃圾分類設置與否。但是爲了獲得信息和「新鮮」的鏈接而掙扎讓我擔心今天erlang社區和erlang本身如何活躍 –