問題タブ [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.
r - ets関数から実際の予測を取得するには?
ets
Rのパッケージの関数を使用していて、モデルを次のようなforecast
単一の時系列に適合させたとしますt
コンソールに入力すると予測を見ることができますが、fcast
実際にこの値を抽出してプログラムの一部として使用するにはどうすればよいでしょうか? の内容を検索しましたがstr(fcast)
、実際の予測はどこにも見つかりません。
erlang - Erlang ets 要素の削除/フィルタ
elang ets テーブルを単純なキャッシュとして使用します。テーブルをスキャンして期限切れの要素を削除するプロセスを使用したい (複数)。
ets:foldl を使用
私は得た
これを修正するにはどうすればよいですか?
他のAPIはこれをよりうまく行うでしょうか?
elixir - テーブル全体をスキャンせずにetsキーのリストを取得する方法は?
キーを保存および取得するための単純なメモリ内永続レイヤーとして、また異なる値を持つ多くの重複キーを減らすことを含む時折のfoldlのために、エリクサー経由でetsを使用しています。バッグオプションを使用しています。
より複雑なテーブル トラバーサル、マッチ、またはフォールドを実行することなく、現在のキーだけのリストを取得する簡単な、おそらく O(1) 方法はありますか?
Erlang または Elixir 構文の応答を歓迎します。
挿入を支援するために使用している整数でインデックス付けされたアトム キーの静的マップがあります。しかし、すべてのキーが使用されるわけではありません..
簡単な方法がない場合は、ets:lookup を実行して静的アトム キー値をそれぞれ試し、!= [] をテストして独自のリストを生成できることは承知していますが、ets がそのような機能をサポートしているかどうかを確認したかったのです。
ありがとう
erlang - Erlang ETS テーブル イベント
共有状態に使用したい場合、ETS テーブルへの挿入を待機するための確立されたメカニズムはありますか?
私は mnesia サポート テーブル イベントを知っています。必要なデータがロードされるまでプロセスが待機できるように、同様のメカニズムがプレーンな ETS に役立つと考えていました。これを行う唯一の方法は、ループをスピンして、指定されたキーが到着するまで継続的に要求することだと思いますが、それは非常に非効率的です。私はむしろメッセージのコールバックを受け取りたいです。私と ETS の間にプロセスを挿入すると、問題を先送りしたことになります。
caching - Elixir の分散キャッシング
どのpidがどのユーザーに属しているかのマッピングを保存するためにレジストリを必要とするElixirアプリを書いています。監視対象のアプリで、ユーザーごとに GenServer を用意します。ETS を使用して 1 つのノードで動作する基本的な例がありますが、2 つ以上のノードでは、クラスタリング/レプリケーションをサポートしていないため、ETS を使用できません。分散キャッシュを使用するためのその他のオプションは何ですか? いくつかの調査を行った結果、私のオプションは、Redis などのデータベースを使用するか、Amensia を使用することです。
erlang - ets およびファイルの読み取りに関するエラー
免責事項: このコードは私が書いたものではありません。機能させようとしているだけです。
ここからコードを機能させようとしています。セットアップは、Erlang がインストールされた Ubuntu 14.04 64 ビット マシンです。
アクションのシーケンスは次のとおりです。私がやっていることは次のとおりです。
- コードを複製する
cd
コードを含むフォルダーとerl
ターミナルにmake:all([load]).
polis:create().
polis:start().
benchmarker:start(slidingwindow50).
私が得るエラーは次のとおりです。
のコードを fx.erl
確認すると、問題の原因はおそらくets
パーツと.txt
ファイルがディスクからメモリ内のテーブルに読み取られていないことにあることがわかります。
更新: の機能を調査しようとしていますfx
。これまでのところ、次のような結果が得
られました。 fx:sim(anything)
「開始」を出力し、シェルが応答しなくなります。
fx:init().
結果は
FX 通貨テーブルの初期化:[metadata,'EURUSD15','EURUSD30','EURUSD60'] FX メタデータと通貨テーブルが初期化され、ファイルに書き込まれました。わかった
fx:loop().
たくさん出力します
テーブルに挿入された新しいレコード:「EURUSD15」
最後の行は
新しい FOREX_DB の更新:{2009,6,16,7,30,0,15}
その後
=エラー レポート==== 2016 年 3 月 22 日::16:41:26 === プロセス <0.357.0> で終了値 {badarg,[{fx,insert_ForexRaw,2,[{file," fx.erl"},{line,767}]},{fx,updater,1,[{file,"fx.erl"},{line,698}]},{fx,heartbeat,3,[{ファイル,"fx.erl"},{行,692}]}]}
ets:i().
後に実行すると、fx:init().
というテーブルが表示されませんEURUSD15
。
それはなぜですか、どうすれば修正できますか?
PS 有効な解決策が見つかった場合は、変更を元のコードにマージするように依頼する予定です (基本的には、プッシュ リクエストを試みます)。
erlang - スーパーバイザーが複数の子を作成するときの問題
スーパーバイザーがいます。gen_server である子から child_specs を取得します。私は最初に単一のスーパーバイザーと子の関係についてこれを書きました。後で私はそのスーパーバイザーに多くの子供を育ててもらいたいと思いました。しかし、私はいくつかの ets テーブルを子 gen_server の状態として持っています。したがって、スーパーバイザーが 2 番目の子を作成しようとすると、次のような例外がスローされます。
ets は共有されているため、スーパーバイザーが 2 番目の子の init 関数に移動すると、すでに ets テーブルが表示されているため、例外が発生しますが、回避方法がわかりません。ただし、推測にすぎません。
これは、子の gen_server から子の仕様を取得する方法です
gen_server の init() 関数は
私はerlangの完全な初心者なので、苦労しています。
ありがとうございました !
erlang - Erlang ets は複数のテーブルに挿入します
私はErlangの初心者です。ets テーブルについて質問がありました。
2 つの ets テーブルがあり、両方から値を挿入または削除する必要があります。
操作が成功したか、両方で失敗したかを保証するにはどうすればよいですか?
例えば挿入操作で、ets:insert(table_cp,V) に何か問題があった場合、talbe_test から値を削除しますか?
同じように削除します。ets:delete(table_cp,V) が失敗した場合、値を再挿入しますか?
助けてください。