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

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

javascript - Javascript エンジンの利点

現在、JavaScript エンジンについて混乱しています。JavaScript をネイティブ コードにコンパイルしたため、 V8が大したことはわかっています。

次に、 Mozilla SpiderMonkeyについて読み始めました。これは、私が理解していることから、C で記述されており、JavaScript をコンパイルできます。では、これは V8 とどう違うのでしょうか? これが本当なら、なぜ Firefox はこれを行わないのでしょうか?

最後に、Rhinoは文字どおり JavaScript を Java バイト コードにコンパイルするので、Java の速度の利点をすべて利用できますか? そうでない場合、デスクトップでスクリプトを作成するときに V8 を実行しないのはなぜですか?

0 投票する
3 に答える
3894 参照

javascript - Javascript 正規表現がハングする (v8 を使用)

この正規表現を使用して、ファイル内のタグの内容を取得します。

これにより、v8 エンジンが無期限にハングします。

今、私が使用すればnew RegExp("<tag:main>([\s\S]*)</tag:main>")、すべてが良いです。

最初の時間が長すぎる理由を知っている人はいますか?

0 投票する
3 に答える
2180 参照

c++ - V8の組み込み関数の使い方

私はJavaScriptとV8の両方が初めてです。Google の Embedder's Guide によると、組み込みのユーティリティ javascript 関数について説明しているコンテキスト セクションを見つけました。また、ダウンロードしたソースコードの中にいくつかの .js ファイル (例: math.js) を見つけたので、これらのファイルの関数を呼び出す簡単なプログラムを作成しようとしましたが、失敗しました。

  1. によって作成されたコンテキストにPersistent<Context> context = Context::New()は、組み込みの js 関数がありますか? どうすればアクセスできますか?

  2. 最初に既存の js ファイルをライブラリ (HTML ページの src="xxx" type="text/javascript" のようなもの) としてインポートしてから、独自の実行スクリプトを実行する方法はありますか?

  3. アプリに埋め込まれた V8 ライブラリを介して Google マップ API を呼び出すことはできますか? どのように?

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

javascript - GoogleJavascriptv8-マルチスレッド

次のコードがあるとします

複数のスレッドを使用してこのコードを実行できないというのは本当ですか?HandleScopeマルチスレッドアプリケーションで使用するように設計されていないようです。v8::Lockerandメソッドを使用できますv8::Unlockerが、これにより常に実行トレースが次のように表示されます。

誰かがこのコードをマルチスレッド化するためのヒントを教えてくれるといいのですが、実行トレースの可能性は次のようになります。

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

javascript - オブジェクトを相互にフォールバックする Javascript の取得

これは Javascript の醜いビットです。回避策を見つけるとよいでしょう。

Javascript にはクラスがありません。これは良いことです。しかし、オブジェクト間のフォールバックをかなり醜い方法で実装しています。基本的な構造は、プロパティが見つからない場合に別のオブジェクトにフォールバックする 1 つのオブジェクトを持つ必要があります。

したがって、aフォールバックしたい場合はb、次のようにします。

それから

ただし、Javascript は代わりにnew演算子 andを提供しますprototypes。そのため、はるかにエレガントではありません。

しかし、優雅さは別として、これは厳密には強力ではありません。これは、A で作成されたものはすべて同じフォールバック オブジェクトを取得することを意味するためです。

私がやりたいことは、Javascript をこの人為的な制限から解放し、個々のオブジェクトに別の個々のオブジェクトをフォールバックとして与える能力を持つことです。そうすれば、理にかなっている場合は現在の動作を維持できますが、それが理にかなっている場合はオブジェクト レベルの継承を使用できます。

私の最初のアプローチは、ダミーのコンストラクター関数を作成することです。

しかし残念ながら:

これが機能しない理由、または実装の解決策はありsetFallbackますか?

(これがプラットフォームに依存する場合に備えて、node.js経由でV8で実行しています)


編集:

これに対する部分的な解決策を以下に投稿しました。これは V8 の場合に機能しますが、一般的ではありません。より一般的な解決策をいただければ幸いです。

0 投票する
13 に答える
125699 参照

javascript - ブラウザなしで JavaScript を実行しますか?

ブラウザなしで Javascript プログラミングを検討しています。他のスクリプト言語 (ruby、php、perl、python...) を実行するのと同じように、Linux または Mac OS X コマンドラインからスクリプトを実行したい

スパイダー モンキー (Mozilla) と v8 (Google) を調べましたが、どちらも埋め込まれているようです。

コマンドラインから実行するスクリプト言語として Javascript を使用している人はいますか?

なぜ私がこれを調べているのか知りたい人がいれば、私はnode.jsを調べてきました。node.js のパフォーマンスは、javascript が大きなデータを処理するための実行可能なスクリプト言語であるかどうか疑問に思います。

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

javascript - V8 で JavaScript をネイティブ コードにコンパイルする

Google の V8 エンジンを使用して JavaScript をネイティブ コードにコンパイルし、それをバイナリ ファイルとして保存し、任意のマシンでソフトウェア環境を介して必要なときに実行することは本当に可能ですか?

0 投票する
3 に答える
7329 参照

javascript - TraceMonkey はどこでダウンロードできますか?

ここから Spidermonkey JavaScript エンジンを取得できます。

http://www.mozilla.org/js/spidermonkey/

また、Tracemonkey が SpiderMonkey の後にリリースされた新しいバージョンであることは知っていますが、Mozilla でそのダウンロード リンクが見つかりませんか? 一般向けに公開されていますか?TraceMonkey を一般にダウンロードできない場合は、SpiderMonkey に戻すか、Google の V8 に完全に切り替える必要がありますか?

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

v8 - v8 は私の目的には遅すぎる

libvisual の音楽視覚化プラグインに取り組んでいます。これは AVS クローンです。AVS は Winamp からのものです。現在、スーパースコーププラグインがあります。この要素には 4 つのスクリプトがあり、「ポイント」はすべてのピクセルで実行されます。かなり高速でなければならないことが想像できます。オリジナルの libvisual avs クローンには、非常に高速な JIT コンパイラが含まれていましたが、いくつかのバグがあり、完全には実装されていなかったため、v8 を試すことにしました。v8 では、コンパイルされたスクリプトをすべてのピクセルで実行するのが遅すぎます。この目的で非常に高速なスクリプト エンジンは他にありますか?

0 投票する
3 に答える
18448 参照

javascript - new を使用して作成できるように、V8 Javascript Engine で C++ クラスを公開するにはどうすればよいですか?

Point クラスを公開する公式の例では、プログラム内に固定数のインスタンスがあることを想定しているようです。Javascript でnewが呼び出されたときに、C++ コードで新しいインスタンスがどのように割り当てられるかは明確ではありません。

複数のインスタンスを持つことができるクラスをどのように公開しますか? たとえば、Image クラスは次のようになります。