2017-04-01 6 views
1

ordered_setのETSテーブルを使用し、行は{{integer_value, string}}のように見えますキーのみ)。 を実行すると、integer_valueがすべての行を選択しています。時間の競合を減らすために `>`と `<= 'を用いて` select`文に `ordered_set`を使うのは意味があります

対数時間で下限と上限の両方を見つけて、その間にすべての要素を取得すると、SQLテーブルから期待されるように、テーブル全体をスキャンする代わりに役立ちますか、そうした機能がETSに実装されていません通常のsetの代わりにordered_setを使用すると特にメリットはありません。

答えて

1

簡単な方法は、関数またはetsモジュールの関数の実行時間を取得するための関数:timer:tc/3関数です。
fprofまたはeprofを使用してコードをプロファイリングすると、どの関数が呼び出されたのかとその実行にどれくらいの時間がかかります。
これはあなたを助けることができます。
あなたがerlangプロファイラに精通していない場合は、私はsetordered_setの簡単な例をプロファイラで表示できます。

+0

私は既に(2011年最後に更新されたトピックで)発見しました:) 'ets'はソートされているかどうかにかかわらず、テーブル全体をスキャンします。しかし、情報を得ようとする闘争とリンクの「新鮮さ」は、私が今日どのように生きているのを心配し、 –