問題タブ [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.

0 投票する
2 に答える
584 参照

erlang - erlangプロセス間マルチキャスト

erlangでチャットサーバーを開発しようとしていますが、プロセスのグループ間でメッセージをブロードキャストしたいのですが、3つの選択肢があります。

  1. グループの残りの部分にメッセージを送信するマスタープロセスにすべてのメッセージを送信します。これは私にとってボトルネックのように見えます!。
  2. グループのすべてのpidを含むグローバルetsテーブルを使用します(過度のコピー)。
  3. updマルチキャストを使用します。
  4. 1と同じpgモジュール。

最善のアプローチは何ですか、他の選択肢はありますか?

0 投票する
2 に答える
1642 参照

erlang - Erlang 共有 ETS テーブル

Erlang ETS テーブルを異なるプロセス間で共有できますか? したがって、異なる Erlang 実行システムで 2 つのプロセスを実行している場合、1 つの ETS テーブルで行ったすべての変更がもう 1 つのテーブルに反映されるように、どうにかしてそれらをリンクできますか?

0 投票する
1 に答える
332 参照

erlang - ets が私のテーブルを無作法に削除するのはなぜですか?

ets で存在しないテーブル (t3) を検索した後、ユーザーが作成したすべてのテーブル (t1 および t2) が削除されます。それはバグですか、それとも ets の奇妙な機能ですか?

これがEshellのコードです。



ここで何が問題なのか教えてくれる人はいますか?

0 投票する
2 に答える
1166 参照

erlang - erlang ets select 奇妙な動作

Erlang で ets:select を使用すると奇妙な動作が発生します。

正しい select ステートメント (下の 4 と 5) を達成した後、ステートメントでエラーを犯し (下の 6)、4 と 5 と同じステートメントを再試行しましたが、機能しなくなりました。

何が起こっている ?何か案が ?

私のetsテーブルは破壊されましたか?それはetsのバグでしょうか?

ありがとうございました。

0 投票する
4 に答える
3122 参照

erlang - 2 つのプロセスで ETS テーブルを共有しますか?

あるプロセスで ETS テーブルを作成し、それを別のプロセスで使用したいと考えています。2 番目のプロセスで ETS テーブルを「開く」にはどうすればよいですか? マニュアル ページに適切な機能が見つかりませんでした。

0 投票する
1 に答える
427 参照

erlang - Erlang-ETSを使用したリングベンチマーク

N個のプロセスがあり、それらを介してM回メッセージを送信するリングベンチマークを作成しようとしています。プロセスのpidをETSテーブルに保存したいと思います。

電話:

loop / 2がエクスポートされるので、なぜこのエラーが発生するのかわかりません。

0 投票する
2 に答える
389 参照

file-io - Erlang では、ネストされたタプルに改行を含めずに ets:tab2list を使用できますか?

私はetsを作成しています。

次の形式でデータを入力しています。

これらをそれぞれ別の行としてテキスト ファイルに保存したいと思います。私は次の方法でこれを試みています:

これは与える:

次にio:format、ファイルに保存するために使用します。

しかし、3 番目のタプル (ネストされたタプルの先頭と)myetsに改行を入れずにテキスト ファイルに保存する簡単な方法はあるのでしょうか?oldsettingnewsetting

0 投票する
2 に答える
1725 参照

performance - Erlang ETS テーブルのすべての値を更新する最速の方法は何ですか?

ETS テーブル内のすべてのタプルに関数を適用したいと思います。

テーブルはセットで、各キーは 1 回だけ表示されます。

私のテーブルには、同じタイプのタプルのみが含まれています。

すべての値は::integer()

私がしたいのは、特定の値を経過させ、すべてのタプルを関数で更新することですapply_vector/2

可能な解決策

  • を使用するets:foldlと、折りたたみ中に挿入がトラバースされ、無限 (非常に長い) ループが発生する可能性があります。

  • を使用して新しいタプルを準備し、ets:foldlリスト全体を挿入できます。

  • 新しいテーブルに挿入して、古いテーブルを新しいテーブルに置き換えることはできますが、テーブルへのアクセスを gen_server への呼び出しで制限したくありません。テーブルにはいつでもアクセスできる必要があります。

  • ets:update_elementXとYを更新するためにVXとVYの値を読む必要があるので使えません。

  • いくつかの反復子ユーティリティがあることは知っていますが、楽しみを渡すことを誰も許可していないようです。

この更新は 1 ~ 5 秒ごとに行う必要があります。では、10個のタプルで最も効率的なソリューションはどれですか? 100個のタプルで?もっと?

ありがとう !

ボートのリストを保持します。キーはボート ID、X と Y は地理座標、VX と VY は動きのベクトル (1 秒間の変位) を表します。Elapsed は比率であり、最後の更新からの秒数です。テーブルは、各ボートの位置をいつでも知るのに役立ちます。

0 投票する
1 に答える
267 参照

erlang - ets テーブルの継承と trap_exit メッセージ

「Learn You Some Erlang」を読んで、メッセージを受け取る特定の ets テーブルのプロセス継承者を設定できることを発見しました。

テーブルを所有しているプロセスが終了したとき。

しばらくして、そのような機能を使用して ets テーブルを保持する方法に関する別の提案が記載されたこの投稿を見つけました。

最後の方法では、ユーザーは、テーブルを所有しているピア プロセスが停止しているかどうかを知るために、trap_exit も使用することを提案しています。ここで私の質問は、どのメッセージを最初に受け取るかです。ets テーブルに関するメッセージですか、それともピア プロセスのクラッシュに関するメッセージですか?

終了メッセージを処理する必要は本当にありますか? ets メッセージを受信すると、それを処理するピア プロセスが完全に機能していないことがわかります。それともしばらく生きているのでしょうか?

0 投票する
1 に答える
209 参照

erlang - ets:match が期待値を返さない

ets:match に問題があります。次のコードでは、ets:match が 1 つの見つかった値を返すことを期待していますが、何も返されません。なんで ?