Subscribe to RSS Feed ログイン

オーガニック・ウェルス

Saturday
2018年4月21日

Google V8 Engineを試す

環境はUbuntu12.04

V8のビルドにはSCONSが必要とかかれていますが、今後SCONSはサポートされなくなるようなのでmakeを使います。

$ svn co http://v8.googlecode.com/svn/trunk/ v8
$ make dependencies
$ make ia32

ビルドは完了しました。サンプルを動かしてみます。まずはshellを作成します。

g++ -o shell -m32 -O2 -m32 obj/sample/shell/release/shell.o -L. -lv8 -lpthread

<test.js>

print("test");

実行する。
$ ./shell test.js
もう一つのサンプルを動かしてみます。
$ g++ -o process -m32 -O2 -m32 obj/sample/process/release/process.o -L. -lv8 -lpthread
$ ./process samples/count-hosts.js verbose=true

Logged: Processing google.com/process.cc from localhost@firefox
Logged: Processing google.net/ from localhost@firefox
Logged: Processing google.org/ from localhost@safari
Logged: Processing yahoo.com/ from localhost@ie
Logged: Processing yahoo.com/ from localhost@safari
Logged: Processing yahoo.com/ from localhost@firefox
google.com: 1
google.net: 1
google.org: 1
yahoo.com: 3

結果が何のかはよく分かっていないんですが・・・
自前のC++ソースに組み込む場合も説明します。

https://developers.google.com/v8/get_started#hello

Hello Worldの2個目のサンプルを使用します。上記ページではx64でビルド指定してますが、ia32でコンパイルします。
$ g++ -Iinclude hello_world.cc -o hello_world out/ia32.release/obj.target/tools/gyp/libv8_{base,snapshot}.a -lpthread
$ ./hello_world
で実行します。

参考ページ

Google Chrome の JavaScript エンジン V8 を試す – IT戦記

Building V8

コメント(0)続きを読む

Windowsでもアセンブラ

環境はWindows7 + Cygwinを使いました。

gccは3.4.4、nasmは2.08.02が入っています。

<asmtest.s>

    global      _main
    extern      _printf

    section .text
_main:
    push        message
    call        _printf
    add         esp, 4
    ret
message:
    db  'AsmTest.', 10, 0

$ nasm -f win32 asmtest.s

$ gcc -o asmtest asmtest.obj

$ ./asmtest

AsmTest.

この状態では45,314バイトのexeファイルが生成されました。-sコマンドで同時にstripを行います。

$ gcc -o asmtest -s asmtest.obj

ファイルサイズは4096バイトに減らせました。

コメント(0)続きを読む