問題タブ [embedded-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 - V8 用 JavaScript 標準ライブラリ
私のアプリケーションでは、ユーザーが JavaScript を使用してプラグインを作成できるようにしています。そのためにV8を組み込みます。問題は、開発者が HTTP、Sockets、Streams、Timers、Threading、Crypotography、Unit tests などを使用できないことです。
スタック オーバーフローを検索したところ、node.js が見つかりました。問題は、実際にHTTP サーバーを作成し、プロセスを開始したり、許可したくないことを実行したりできることです。また、node.js には独自の環境 ( ./node script.js
) があり、埋め込むことはできません。また、Windows はサポートしていません。完全にクロス プラットフォームにする必要があります。これらの問題が解決できれば、それは素晴らしいことです :) しかし、私は他のフレームワークにもオープンです。
何か案は?
ありがとうございました!
javascript - GoogleV8エンジンでutf8文字列を作成する方法
こんにちはImはC++プログラムに埋め込まれたv8エンジンを使用していて、文字列の問題に遭遇しました。
もちろん、v8エンジンはutf8文字列を完全にサポートしていますが、方法がわかりません。
ただし、結果は唯一の文字「D」です。String:: Newは、char*とutf_16*のみを受け入れます。
v8ドキュメントを確認しましたが、utf8文字列を作成する方法が見つかりませんでした。誰か助けてもらえますか?
c++ - クラスで V8 をラップするときのセグメンテーション違反?
プロジェクトで Google の Javascript Engine V8を使用したいと考えており、エンジンのラッパー クラスを作成しようとしました。コードの一部は、V8 ディストリビューションの samples/shell.cc からコピーされています。
ただし、セグメンテーション違反で中止されるだけで、理由がわかりませんが、問題は発生していますがv8::internal::Top::global_context()
( null のように見える invalid が原因context
です)。コード自体は私には問題ないように見えますが、おそらく私は信じられないほど愚かなことをしました:-)。
私のコードのセグメンテーション違反は で発生しv8::Script::Compile
ます。
問題のコード (更新): https://gist.github.com/4c28227185a14bb6288c
Luis G. Costantini R. の Answer のおかげで、問題はなくなりましたSet
(もう中止されません)。ただし、公開された名前はまだ利用できず、ReferenceError が発生します...
c++ - V8 でのアクセサーの使用に関する問題
V8エンジンのラッパークラスを書いているので、最終的にはこのようなことができるようになります
これまでのところ、クラスを作成して関数を追加することができ、完全に機能しますが、変数の追加で問題が発生しました。
私のクラステンプレートはそのように保存されています
そして、次のようにアクセサーを追加しようとします:
このコードをコンパイルすると、v8::Object に SetAccessor 関数がないというエラーが表示されます (ただし、doxygen のドキュメントには別の記述があります)。
私の質問は次のとおりです。どうすればこれを修正できますか? オブジェクトを ObjectTemplate にキャストすることは可能ですか?
javascript - V8 では、対応する JavaScript オブジェクトがガベージ コレクションされた後、ラップされた C++ オブジェクトを削除するにはどうすればよいですか?
このチュートリアルで提供されているコードがあるとしましょう。
Point
V8 の GC が JavaScript ラッパーを破棄したときに、作成された C++ オブジェクトのデストラクタが呼び出され、メモリから削除されるようにするには、どうすればよいでしょうか?
c++ - Mono と Google V8 の埋め込み?
プロジェクトにスクリプトを追加したいと考えています。
どのスクリプト エンジンを使用するか迷っています。過去にV8を使用したことがありますが、非常に印象的です。私も Mono を使用しましたが、おもちゃのプロジェクトまたはプロトタイプでのみ使用しました。
制約は次のとおりです。
- 実行速度。
- 簡単な統合。
- Windowsで動作する必要があります。
- 64 ビットのサポート。
- Visual Studio でコンパイルします。
どのエンジンが一番合う?
(Visual Studio を使用して win64 で Mono をコンパイルするためのチュートリアルはありますか? Lib ファイルと DLL を含むパッケージはありますか?)
javascript - QTCreator C++ コンソール プロジェクトに Google の V8 Javascript エンジンを含める
Google の V8 Javascript エンジンを QTCreator コンソール プロジェクトに含めるにはどうすればよいですか?
私はすでに V8 をコンパイルしており、サンプル シェルと d8 開発者シェルで遊んでいます。このライブラリを QTCreator で使用するためのコードを書き始めたいと思います。
私は QTCreator を初めて使用します。私の問題は、QTCreator が正しくコンパイルできるように .pro ファイルをセットアップしようとしていることです。今のところ、Hello World の例を機能させたいだけです。
Google の V8 の Hello World の例: http://code.google.com/apis/v8/get_started.html
どんな助けでも大歓迎です。
javascript - Google V8 による最速の Javascript オブジェクトのシリアル化
1 から 100 の混合型プロパティを持つ適度に複雑なオブジェクトをシリアル化する必要があります。
最初は JSON を使用していましたが、わずかに高速な BSON に切り替えました。
10000 個のサンプル オブジェクトのエンコード
桁違いの増加が必要です。システムの残りの部分に途方もなく悪い影響を与えています。
BSON に移行する動機の一部は、バイナリ データをエンコードする必要があるため、JSON は (現在) 不適切です。また、オブジェクトに存在するバイナリデータを単純にスキップするため、これらのベンチマークで「不正行為」を行っています。
プロファイリングされた BSON パフォーマンスのホットスポット
- (やむを得ない?) UTF16 V8 JS 文字列の UTF8 への変換。
- BSON ライブラリ内の malloc および string ops
BSON エンコーダーは、Mongo BSON ライブラリーに基づいています。
ネイティブの V8 バイナリ シリアライザーは素晴らしいかもしれませんが、JSON はネイティブでシリアル化が速いため、それでも答えが得られないのではないかと心配しています。おそらく、私の最善の策は、BSON ライブラリを最適化するか、独自のライブラリを作成して、V8 から文字列を引き出すはるかに効率的な方法を見つけることです。戦術の 1 つは、BSON に UTF16 サポートを追加することです。
だから私はアイデアと、おそらく健全性チェックのためにここにいます。
編集
MessagePack ベンチマークを追加しました。これは BinaryF を使用するように元の JS から変更されました。
C++ MessagePack ライブラリはさらなる改善を提供する可能性があります。BSON ライブラリと直接比較するために単独でベンチマークすることがあります。
java - JavaアプリケーションにV8を埋め込む方法は?
JavaアプリケーションにGoogleJavaScriptエンジンV8を埋め込むためのソリューションを探しています。
あなたはいくつかの解決策を持っていますか?
javascript - v8新しいコンテキストでコンパイルされたスクリプトからプロパティにアクセスできません
含まれているスクリプトがコンパイルされ、新しいコンテキストで実行される、単純な「require」メカニズム(https://gist.github.com/1031869 )を作成しました。ただし、インクルードされたスクリプトで関数を呼び出して渡すとthis
、インクルードされたスクリプトにプロパティが表示されません。