Alloyed / vmtest

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Embedded language benchmarks

Suite of benchmarks for testing a language implementation's suitability/performance when embedded in a larger C++ application.

Requirements:

  • loads/runs code at runtime
  • No/limited global state (this means no GIL, specifically)
  • No JIT compilation. If the language has a flag to disable all JIT, that's fine.
  • A well defined C/C++ api

Evaluation criteria:

  • Raw language performance
  • C++ API performance (this includes marshalling and so on)
  • Startup times on a small codebase
  • Startup times on a large codebase (will need some sort of codegen to simulate this)
  • Memory usage

Non-performance criteria I hope to suss out:

  • Ease of embedding
  • Ability to write complex native-feeling binding layers
  • Ability to generate binding layers via codegen

Things I'm interested in evaluating:

  • duktape
  • v8
  • PUC lua 5.1
  • PUC lua 5.3
  • luajit
  • wren
  • dart
  • haxe
  • squirrel
  • angelscript

Running Tests

We're using CMake as our build system. All dependencies are bundled with the application.

$ git submodule update --init --recursive
$ mkdir build
$ cd build
build $ cmake ..
build $ make
build $ ctest --verbose

About


Languages

Language:CMake 84.2%Language:C++ 7.8%Language:C 3.3%Language:JavaScript 2.0%Language:Lua 1.7%Language:Python 1.0%