問題タブ [v8]
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.
javascript - Javascript エンジンの利点
現在、JavaScript エンジンについて混乱しています。JavaScript をネイティブ コードにコンパイルしたため、 V8が大したことはわかっています。
次に、 Mozilla SpiderMonkeyについて読み始めました。これは、私が理解していることから、C で記述されており、JavaScript をコンパイルできます。では、これは V8 とどう違うのでしょうか? これが本当なら、なぜ Firefox はこれを行わないのでしょうか?
最後に、Rhinoは文字どおり JavaScript を Java バイト コードにコンパイルするので、Java の速度の利点をすべて利用できますか? そうでない場合、デスクトップでスクリプトを作成するときに V8 を実行しないのはなぜですか?
javascript - Javascript 正規表現がハングする (v8 を使用)
この正規表現を使用して、ファイル内のタグの内容を取得します。
これにより、v8 エンジンが無期限にハングします。
今、私が使用すればnew RegExp("<tag:main>([\s\S]*)</tag:main>")
、すべてが良いです。
最初の時間が長すぎる理由を知っている人はいますか?
c++ - V8の組み込み関数の使い方
私はJavaScriptとV8の両方が初めてです。Google の Embedder's Guide によると、組み込みのユーティリティ javascript 関数について説明しているコンテキスト セクションを見つけました。また、ダウンロードしたソースコードの中にいくつかの .js ファイル (例: math.js) を見つけたので、これらのファイルの関数を呼び出す簡単なプログラムを作成しようとしましたが、失敗しました。
によって作成されたコンテキストに
Persistent<Context> context = Context::New()
は、組み込みの js 関数がありますか? どうすればアクセスできますか?最初に既存の js ファイルをライブラリ (HTML ページの src="xxx" type="text/javascript" のようなもの) としてインポートしてから、独自の実行スクリプトを実行する方法はありますか?
アプリに埋め込まれた V8 ライブラリを介して Google マップ API を呼び出すことはできますか? どのように?
javascript - GoogleJavascriptv8-マルチスレッド
次のコードがあるとします
複数のスレッドを使用してこのコードを実行できないというのは本当ですか?HandleScope
マルチスレッドアプリケーションで使用するように設計されていないようです。v8::Locker
andメソッドを使用できますv8::Unlocker
が、これにより常に実行トレースが次のように表示されます。
誰かがこのコードをマルチスレッド化するためのヒントを教えてくれるといいのですが、実行トレースの可能性は次のようになります。
javascript - オブジェクトを相互にフォールバックする Javascript の取得
これは Javascript の醜いビットです。回避策を見つけるとよいでしょう。
Javascript にはクラスがありません。これは良いことです。しかし、オブジェクト間のフォールバックをかなり醜い方法で実装しています。基本的な構造は、プロパティが見つからない場合に別のオブジェクトにフォールバックする 1 つのオブジェクトを持つ必要があります。
したがって、a
フォールバックしたい場合はb
、次のようにします。
それから
ただし、Javascript は代わりにnew
演算子 andを提供しますprototypes
。そのため、はるかにエレガントではありません。
しかし、優雅さは別として、これは厳密には強力ではありません。これは、A で作成されたものはすべて同じフォールバック オブジェクトを取得することを意味するためです。
私がやりたいことは、Javascript をこの人為的な制限から解放し、個々のオブジェクトに別の個々のオブジェクトをフォールバックとして与える能力を持つことです。そうすれば、理にかなっている場合は現在の動作を維持できますが、それが理にかなっている場合はオブジェクト レベルの継承を使用できます。
私の最初のアプローチは、ダミーのコンストラクター関数を作成することです。
しかし残念ながら:
これが機能しない理由、または実装の解決策はありsetFallback
ますか?
(これがプラットフォームに依存する場合に備えて、node.js経由でV8で実行しています)
編集:
これに対する部分的な解決策を以下に投稿しました。これは V8 の場合に機能しますが、一般的ではありません。より一般的な解決策をいただければ幸いです。
javascript - ブラウザなしで JavaScript を実行しますか?
ブラウザなしで Javascript プログラミングを検討しています。他のスクリプト言語 (ruby、php、perl、python...) を実行するのと同じように、Linux または Mac OS X コマンドラインからスクリプトを実行したい
スパイダー モンキー (Mozilla) と v8 (Google) を調べましたが、どちらも埋め込まれているようです。
コマンドラインから実行するスクリプト言語として Javascript を使用している人はいますか?
なぜ私がこれを調べているのか知りたい人がいれば、私はnode.jsを調べてきました。node.js のパフォーマンスは、javascript が大きなデータを処理するための実行可能なスクリプト言語であるかどうか疑問に思います。
javascript - V8 で JavaScript をネイティブ コードにコンパイルする
Google の V8 エンジンを使用して JavaScript をネイティブ コードにコンパイルし、それをバイナリ ファイルとして保存し、任意のマシンでソフトウェア環境を介して必要なときに実行することは本当に可能ですか?
javascript - TraceMonkey はどこでダウンロードできますか?
ここから Spidermonkey JavaScript エンジンを取得できます。
http://www.mozilla.org/js/spidermonkey/
また、Tracemonkey が SpiderMonkey の後にリリースされた新しいバージョンであることは知っていますが、Mozilla でそのダウンロード リンクが見つかりませんか? 一般向けに公開されていますか?TraceMonkey を一般にダウンロードできない場合は、SpiderMonkey に戻すか、Google の V8 に完全に切り替える必要がありますか?
v8 - v8 は私の目的には遅すぎる
libvisual の音楽視覚化プラグインに取り組んでいます。これは AVS クローンです。AVS は Winamp からのものです。現在、スーパースコーププラグインがあります。この要素には 4 つのスクリプトがあり、「ポイント」はすべてのピクセルで実行されます。かなり高速でなければならないことが想像できます。オリジナルの libvisual avs クローンには、非常に高速な JIT コンパイラが含まれていましたが、いくつかのバグがあり、完全には実装されていなかったため、v8 を試すことにしました。v8 では、コンパイルされたスクリプトをすべてのピクセルで実行するのが遅すぎます。この目的で非常に高速なスクリプト エンジンは他にありますか?
javascript - new を使用して作成できるように、V8 Javascript Engine で C++ クラスを公開するにはどうすればよいですか?
Point クラスを公開する公式の例では、プログラム内に固定数のインスタンスがあることを想定しているようです。Javascript でnewが呼び出されたときに、C++ コードで新しいインスタンスがどのように割り当てられるかは明確ではありません。
複数のインスタンスを持つことができるクラスをどのように公開しますか? たとえば、Image クラスは次のようになります。