問題タブ [dart-isolates]

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 に答える
248 参照

dart - spawnUri を使用し、Dartium と dart2js の両方で動作する Dart Web アプリを作成するにはどうすればよいですか?

並行 Web アプリを作成したいと考えています (生のワーカーまたはワーカーとしてアイソレートを使用)。アイソレート用の Dart API はspawnUri、スクリプトを指す URI を取ります。

Dartium では、そのスクリプトは.dartファイルです。Chrome/Firefox/etc では、そのスクリプトは.dart.jsファイルです。

spawnUriURI を正しく構成できるように、現在のランタイムを検出する必要があります。これを行う最善の方法は何ですか?

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

dart - IndexedDB を使用した Isolate 間の共有メモリ

私は現在 Isolates を使用していますが、IndexedDB を使用して Isolates 間でデータを共有することがコミュニケーションの良い方法であるかどうかを知りたいですか? 具体的には、1 つの Isolate に書き込みを許可し、他の Isolate に読み取り専用にできるようにします。これは、書き込まれると変更されないと見なされるデータであり、かなり大きいデータです。私がこれをやりたい主な理由は、6MB のマップを 3 つの異なる Isolate に送信したくないためです。これは、プログラムに少し負荷がかかるためです。

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

dart - Dart Isolate vs Akka

私が理解していることから、Dart アイソレートは Akka アクターのようなものです。

ただし、私が理解できなかったのは、dart:isolate同様の目的を果たすかどうかAkkaです。両者の間に根本的な違いはありますか?

dart:isolateアクター モデル プログラミングのフレームワークはのようなものAkkaですか?

それはdart:isolateakka よりも scala アクターに似ていますか。

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

dart - ダーツで新しいアイソレートを生成する方法は?

現在、Dart 分離株で何かが起こっていますか? 過去のいくつかのスタックオーバーフローの質問を見ると、ほとんどの人が使用しているように見えたり、新しい分離の実行を開始しspawnIsolateたりspawnFunctionしていましたが、それらの方法はもはや存在しないようであり、現在の分離ライブラリにはそれらの明白な代替品はありません. また、分離株に関する以前のスタックオーバーフローの質問に人々が入れたリンクをたどると、などの公式ドキュメントから削除されたようです。アイソレートを開始するにはどうすればよいですか?

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

routing - Dart マルチサーバーでのポート転送リクエスト // Isolate ハンドラ

4 つの Dart サーバーを実行していて、リクエストを転送したい場合、Dart でそれを行うにはどうすればよいですか? 一方では、リクエストに効率的に対応したいだけでなく、特定のリクエストを別の方法で処理したり、都市からの IP をどこかで処理したりしたいと考えています。したがって、私はセッション ID を評価し、このセッションは server2:1234 によって提供される必要があると言います。つまり、応答は、server1:80 を介してすべてをルーティングするのではなく、理想的にはそのサーバーによって出力されます。これは、server1:80 の可用性を大幅に低下させるためです。

「hello world」の数値:
server1:80 は約 8000
要求/秒を処理できます 4 つのサーバーは約 15-20000 要求/秒を処理できます (フロントエンドとして nginx を使用)

Isolate は httprequests を処理できません。Afaik では、Isolate のリクエストを解析/ダウングレードする必要がありますが、これはさらに悪いことです。

2 つの質問:

メイン インスタンスをブロックせずにリクエストを転送するにはどうすればよいですか?
(nginx ロードバランシングのように)
リクエストをアイソレートに理想的にルーティングするにはどうすればよいですか?
(私が見つけた例はすべて時代遅れであるか、私が好まないパターンを使用していました: すべてのリクエストに対して分離を生成する...良いアイデアではありません.Isolatesでサーバーインスタンスを動的に作成し、そこにリクエストを転送したいと思います)

私が見る主な問題は、メモリを共有していないことです。したがって、問題は、複製コピーを持たずにデータをルーティングすることさえ可能かどうかです。サーバーが異なるマシンで実行されている場合、重大なトラフィック オーバーヘッドが発生します。動的にヘッダーをリダイレクト/書き換える方法が最善だと思います。しかし、そのためにも、ポート 80 で 4 ~ 16 個の「スレッド」を効率的に使用する必要があります。Afaik ダーツでは不可能です。どうするのが一番いいですか?

ここで助けていただければ幸いです。

アップデート

このパッチを使用すると: https://codereview.chromium.org/250513002/
実際には、古いパッチと同様に機能する並列サーバー プロセスを実現できます: https://codereview.chromium.org/25511002/

どちらの場合も同じポートでリッスンしますが、2 つの場合は別のプロセスを実行してポートを再利用できますが、1 つの場合はプロセスを分離して実行し、ServerSocketReference を共有できます。

古いパッチにはいくつかの調整が必要でしたが、最終的には新しい SDK で、少なくとも nginx を取り除くことができます。nginx プロキシ パスを保存すると、Hello World リクエストが約 10 ~ 20% 増えます。2 つの並列プロセスでは約 140% のパフォーマンスを達成しましたが、3 と 4 ではわずか 145% でした。しかし、私のラップトップでは合計約10kリクエスト/秒で、これは問題ありません(ここで美しさで死にたいとも述べています;))

これは非常に実験的なものであり、将来どのように機能するかは誰にもわかりません。よりクリーンなアプローチと思われるため、最初のパッチをお勧めします。

これが私が以前に見つけたかった基本的な例です:)

UPDATE == SDK 1.4 で動作するようになりました