15

私は自分の Web アプリでいくつかのジョブに Node.js を使用していますが、これまでのところすべて問題ありません。

しかし、Node.js は Google の V8 をデフォルトの Javascript エンジン (JSE) として使用し、V8 は x86 および ARM 命令セット アーキテクチャ (ISA) で排他的に実行されます。

今、私は Node.js を実行したい PPC プロセッサー Mac コンピューターを持っています。

そのためには、Rhino + OpenJDK Shark Virtual Machine + Low Level Virtual Machine ( LLVM ) を JIT コンパイラとして使用することをお勧めします。現在、これが PPC ISA で Node.js を実行する最も適切な方法のようです。または、それを行うより良い方法はありますか?

Node.js を Rhino で動作させることが可能かどうか、事前に教えていただけますか? ところで、Node.js は C++ で書かれており、私は C++ プログラミングの経験があります。つまり、必要に応じて Node.js のコードを再編集しようとすることがあります。

ありがとう。

4

4 に答える 4

19

いいえ、node.js はほぼすべてのソース ファイルで V8 に関連付けられており、作成されたすべてのアドオンも含まれています。C++ の経験がある場合でも、変換を行うのは大変な作業です。

言うまでもなく、この道を一人で進むと、それを維持するのも一人になります。(一方、node.js 自体は、貢献する大規模なコミュニティを集めています。)

本当にそのような努力をしたい場合は、まずメーリング リストで議論することを検討してください。または、V8 の PPC ポートの勢いを集めます。(それ以上に困難な作業ではないにしても、同様に。)

Rhino をすぐに使用できるサーバーサイド JavaScript エンジンについては、Narwhal プロジェクトを参照してください。(活性は低いようですが。)

于 2010-12-04T11:07:40.043 に答える
4

Node.js は V8 と密接に結びついており、あらゆる場所で特定の V8 メソッドを使用しており、依存関係は近い将来に大きくなるだけであり、V8 の内部に侵入する方法には「ハック」があると Shtééf はすでに述べているため、これは不可能です。文字列をソケットに書き込む際のパフォーマンスを大幅に改善するため。

多くのモジュール (assert、inspect など) は、特定の V8 関数に依存しています。V8 と他のサーバー側 JS エンジンの間でコードを移植する方法はありません。

Shtééf はオプションを検討していますが、私が考える解決策は 1 つだけです。PPC
ハードウェアを取り除くことです。

本当にRhinoで実行したい場合は、メンテナンスの悪夢に陥ります。最終的には、2つの異なるアプリケーションを作成するか、Node.jsをエミュレートしようとするRhino用の巨大なランタイムレイヤーを作成する必要があります。 、幸運を祈ります。Rhino では多くの機能が利用できないためです。

また、サードパーティのライブラリはサポートされません。

真剣に、別のコンピューターを入手して、すべてのラッパーなどを自分で作成しても、時間はかかるだけで、素晴らしい Node.js を作成できたはずです。そして、時は金なりですから...

于 2010-12-04T11:27:12.807 に答える
0

Google 発の V8 JavaScript エンジンを PowerPC アーキテクチャに移植するプロジェクト。

https://github.com/ic/v8-powerpc

于 2011-10-05T18:34:22.883 に答える