問題タブ [ets]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
erlang - ets:matchをErlangのレコードと照合する方法は?
コード内でタプルを使用してレコードを指定するのは悪い習慣だと聞いたことがあります。#record_name{record_field = something}
通常のタプルではなく、常にレコード フィールド () を使用する必要があります{record_name, value1, value2, something}
。
しかし、ETS テーブルに対してレコードを照合するにはどうすればよいでしょうか? レコードを含むテーブルがある場合、次のものとのみ一致できます。
レコード定義にいくつかの新しいフィールドを追加すると、このパターン マッチが機能しなくなることは明らかです。
代わりに、次のようなものを使用したいと思います。
残念ながら、空のリストを返します。
erlang - erlang etsテーブルフィールド情報を見つける方法は?
erlangでetsテーブルのフィールド情報(つまりフィールド名)を見つける方法は何ですか?
ets:info(TableName)、ets:i(TableName)を試しました。1つ目は、メモリ、所有者、サイズ、named_table、keypos、protectionなどのテーブルに関する詳細を示します。2つ目は、テーブルに存在するエントリに関する詳細を示します。
performance - ETSordered_setと効果的なページネーション
日時であるETSに{Key, Value}
データを保持します。内部で指定された時間内にすべてのアイテムを選択するのは非常に簡単です。ordered_set
Key
[From, To]
そんな感じ:
関数内にLimit
パラメータがselect()
あるので、選択するアイテムの数を制限することができます。しかし、どうすればオフセットを指定できますか?
入力として、私のモジュールは時間間隔とページ番号を受け取ります。私の目標は、指定された時間間隔とページのアイテムを返すことです。ページサイズ(Limit
)は定数です。オフセットを次のように計算できます
問題は、特定のページのみのアイテムを効果的に選択するにはどうすればよいですか?
関数がパラメーターselect()
を受け取ることができることは知っていますが、前の選択からの状態がありません。Continuation
ページ番号しかありません。
可能ですが、他のデータ構造を使用する必要があります。より良い解決策をお勧めしてください。
erlang - ETS セット保存順序?
ETS セットは、タプルの内部順序が挿入された順序と同じであることを保証しますか? 例: 毎秒タプルを挿入してログを保持します。タイムスタンプがキーです。この例では、セットはタプルがキーでソートされることを保証しますか?
私は、ordered_set が私が望むことを行うことを理解していますが、挿入のオーバーヘッドがあります。したがって、セットが挿入順序を保持する場合、私の例ではセットを使用する方がはるかに効率的です。それで、そうですか?:-)
前もって感謝します、ニコラ
erlang - ETS テーブルからのデータの取得
ETS テーブルのルックアップ時間は一定であることはわかっています。しかし、テーブルはプロセス外に保持されており、データを取得するときはプロセス ヒープに移動する必要があるとも聞きました。だから、これは高価です。しかし、それから、これを説明する方法:
1.7 MB のバイナリをテーブルから取得するのに 0 時間かかる!?
編集: Odobenus Rosmarus の回答を見た後、バイナリをリストに変換することにしました。結果は次のとおりです。
現在、テーブルから1986392 long を取得するのに 106000マイクロ秒list
かかりますが、これはかなり高速ですよね? リストは要素ごとに 2 語です。したがって、データは 4x1.7MB です。
EDIT 2 : erlang-question ( http://groups.google.com/group/erlang-programming/browse_thread/thread/5581a8b5b27d4fe1 ) でスレッドを開始しましたが、0.1 秒がかなりの時間であることがわかりました。 memcpy() (データをプロセスのヒープに移動します)。一方、Odobenus Rosmarus の回答では、バイナリの取得に時間がかからない理由が説明されています。
ets - データのインポートの例
dets:to_ets/2 で問題が発生しました
誰かが私にオンラインの例を教えてもらえますか? マニュアルページを見てきましたが、使用例は見当たりませんでした。グーグルで何も見つかりませんでした..
私の問題は、dets の作成ではなく、実際の dets:to_ets() 関数自体にあるようです。私はそれを自分でテストしましたが、問題ありません。
erlang - erlangでetsを分割する
mapReduceアルゴリズムを使用したコースで作業しているので、ビッグデータファイルからErlangでetsテーブルを作成し、同時に作業したいと思います。テーブルが非常に大きいことが判明しました。mapReduceアルゴリズムを使用してテーブルを同時に検索できるように、1つの大きなテーブルをいくつかの小さなテーブルに分割する方法があるかどうかを知りたいです。1つの大きなテーブルを分割する方法はありますか?テーブルをサブテーブルに??? Thnx。
python - Enthought Tool SuiteのPythonスクリプトをダウンロードするにはどうすればよいですか?
Pythonはすでにダウンロードしていますが、Enthought Tool Suite(ETS)にコードを提供したいと考えています。このサイト(http://code.enthought.com/source/)によると:
次のPythonスクリプトをダウンロードするように指示されています:https ://raw.github.com/enthought/ets/master/ets.py
ets.pyをpythonスクリプトに入れ、名前を付けて保存します...そしてPython Shellで、「importets」と入力しました
ただし、何も起こりません。
また、サイトは次のコマンドを実行するように言っています。
Python Shellでこれらの行を入力すると、「SyntaxError:invalidsyntax」というメッセージが表示されます。
ご覧のとおり、私はPythonを初めて使用し、何をしているのかわかりません。ETSスクリプトをダウンロードしてコマンドを実行するにはどうすればよいですか?
erlang - マッチスペックでmatch_objectを設定します
この関数は、low = <X = <highでこのレコードを選択したいときにのみ、空のリストを取得します。
私を助けてください。ありがとうございました