問題タブ [beam]
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 - Erlang ビーム ファイルの移植性は?
あるノードでコンパイルされたビーム ファイルが別のノードで実行される一時的な状況があります。Beam ファイルは移植可能ですか?
Erlang ディストリビューションのバージョンはどれくらい近い必要がありますか?
architecture - BEAMとJVMの基本的な機能/アーキテクチャの違いは何ですか?
BEAMとJVMの基本的な機能/アーキテクチャの違いは何ですか?
- はい、わかっています。1つは元々Javaを中心に構築され、もう1つはerlangを中心に構築されました。
- JVMを(ある程度)理解していて、それらの構造を比較したい
- たとえば、JVMにはグローバルGCが1つあり、BEAMにはプロセスごとに1つあることがわかっています。
multithreading - Erlangの抽象マシンであるBEAMで使用されるOSスレッドは何ですか?
私はErlangの研究を始めましたが、BEAMランタイム環境が魅力的であることがわかりました。Erlangでは、プロセスはOS(ランタイムを意味し、この場合はBEAMを意味します)ではなく言語に属すると一般的に言われています。これらは、Erlangが有名になりつつある軽量の「グリーンプロセス」です。さらに、BEAMはCPUコアごとに1つのOSスレッドをスケジューリングに使用し、別のOSスレッドをI / Oに使用すると述べています(このペーパーの5ページ)。だから私は疑問に思います:Erlangコードを実際に実行するために必要なCPUサイクルはどのスレッドから来ていますか?
さらに、デュアルコアマシンで実行している場合、これまでに読んだ内容に基づいて、BEAMプロセスで実行されている3つのスレッド(2つのスケジューラー(コアごとに1つ)と1つのI/Oスレッド。しかし、私は10を見ます。時々11。時々それは13で始まり、高品質のアンプのように、11に行きます。
よくわかりません。任意の洞察をいただければ幸いです。
erlang - erlang lib の変更がプロジェクトに組み込まれないのはなぜですか?
私はかなり大規模なプロジェクトで erlang 5.8.1.1 で eclipse 3.6.2 を使用しているため、より新しいバージョンの言語に移行する準備ができていないため、eprof のバグに悩まされています。
これを書いた人はゼロ除算を防げなかったので、いつもクラッシュします。私は変更をハッキングしました:
...しかし、私のプロジェクトでは決して実行されません。.erl を手動で再コンパイルし、.beam を ebin ディレクトリに配置しましたが、プロジェクトを完全にシャットダウンし、Eclipse を閉じ、Eclipse を開き、更新、クリーニング、および再起動した後、メソッドの新しいバージョンは実行されません。「foo + 1」のような式をメソッドに貼り付けて、現在ダウンしているバダリスとは異なる例外が発生するかどうかを確認しましたが、効果はありませんでした。
.beams が統合されているか、どこかにキャッシュされていると推測できますが、それを再構築する必要があります。
java - Erlang と BEAM の未来
Ericsson
しばらく前に、Erlang (C++/PHP/Java の世界から来ました) に真剣に興味を持ちました - そして、業界で、Facebook
、Goldman Sachs
、 などでうまく使用されているのを見てきました。たとえば、Java (私にとって) よりもはるかにクリーンで優れた言語を使用して、低レイテンシーのプロファイルを備えた要求の厳しいアプリを構築します。
しかし、「すごい効果」がなくなった後、Erlang が理論的に最も適している多くの問題 (リアルタイム、低遅延アプリケーション、並行性、フォールト トレランスなど) を解決しているように見える多くの高性能 Java ライブラリがあることを発見しました。 )。さらに、Erlang プロファイルにもかかわらず、BEAM では達成できないことがあるようです ( LMAX Disruptor 並行フレームワークなど)。
そこで疑問が生じます: Erlang は今でもそのようなものを構築するのに最適なプラットフォームdemanding applications
ですか? 1 つの非常に成熟した (J)VM に固執し、より少ないリソース (OTP チームと JVM チームの規模、サポーターなど) で同様のことを達成しようとするよりも、さらに優れたものにしようとするほうがよいのではないでしょうか? そしてperformance and adoption
、BEAM でこのようなことを達成することは可能なのでしょうか?
はっきりさせておきたいのですが、私はここで炎上戦争を始めたくありません。私はErlang が本当に好きで、Erlangは素晴らしいプラットフォームだと思っており、実際のプロジェクトを構築するために時間と労力を費やしたいと思っています。しかし、私はそれについて他の人が何を言うか知りたいだけで、もし私が間違っていたら、誰かが私を正してくれるかもしれません.
amazon-ec2 - ホストでビームを開始できず、ホストで newbeam を開始できない
次のような問題があります。
/etc/hosts ファイル (tester0) は次のとおりです。
インスタンスを起動するたびに (すべて同じバージョンの Erlang を使用し、ソースからビルドしました)、次のスクリプトを実行します。
そして、ドキュメントに記載されているテストを完全に実行できます(次のような):
そしてページで説明されているようなもの: https://support.process-one.net/doc/display/ERL/Starting+a+set+of+Erlang+cluster+nodes
次に、(tester0 で) 実行します。
次の理由から、それは理にかなっています。
奇数???
erlang - tsung ts_config_server ホストで newbeam を開始できません (理由: タイムアウト) 中止します
私は現在、Amazon の EC2 サービスで分散負荷テストを行っている最中であり、機能させる方法に関するすべてのドキュメント/フォーラム/サポートに熱心に従っていますが、残念ながらこの時点で立ち往生しています。関連するIRCの誰もこれに答えることができませんでした...
これが私が見ているものです:
コントローラー自体で単純に実行する場合、Tsung を完全に正常に動作させることができるポイントにいますが、オプションを使用します。
また、より高い/より低いCPU値で動作します。
また、次を使用してローカルで簡単に動作させることもできます。
しかし、希望するスループットを得ることができないため、これは今では役に立ちません。
物事を機能させるために、sshキーをインストールしました。私はこれらのサーバーのすべてのポートを開いています [0 - 65535 ]、まったく同じバージョンの Tsung、Erlang を使用しています。サーバー上のすべてのものは実際には同じです (これらは互いのイメージです)。
Tsung バージョン 1.4.2 Erlang R15B01 Ubuntu 12.04LTS 同じ EC2 セキュリティ グループ (すべてのポートが開いている - TCP と UPD の両方が開き、iptables または SELinux はありません) 同じ EC2 アベイラビリティ ゾーン
tsung を起動すると、上記のように tester0 に送信するだけで機能し、ts_config_server は newbeam を次のように起動します。
ただし、リモートサーバーでこれを実行しようとすると、テスト全体が失敗し、ユーザーがゼロになります。
ただし、2つのクライアントで実行しようとすると(つまり、以下のように):
Web サーバーにヒットするユーザーがゼロになりました。理由はわかりませんが、これは私にはまったく直感的ではありません。
私が気づいたことの 1 つは、slave:start に渡されるすべての引数のうち、存在しないのは 1 つだけであり、それは -boot ディレクティブに続くものです。
むしろ、そのディレクトリには次のファイルしかありません。
私が実際に試した最後のことは、slave:start を試行したときに ssh セッションで何が起こっているかをログに記録することですが、結果が得られません。私は実行してこれを行いました:
ssh_log_me の場所:
しかし、実行しても出力が得られません:
erlang の -boot ディレクティブと実際の erlang コード (ts_config_server 用) を調べましたが、この時点で少し迷っており、最後の情報が 1 つ欠けているだけかもしれません。
ここで私の xml ファイルを見てください: http://pastebin.com/2MEbL6gd
erlang - Erlang のビームサイズを取得するにはどうすればよいですか?
最適化が必要なレガシー Erlang プログラムがあります。このコードは、実行時に最大 20G のメモリを使用します。実行時にプロセス自体のアーラン ビーム サイズを取得する方法があるかどうか疑問に思っています。それが可能であれば、beam size>10GB の場合のように、gen_server プロセスへのすべての呼び出しを拒否することができます。助けてくれてありがとう!