{"id":31769304,"url":"https://github.com/second-state/docker-quark-benchmark","last_synced_at":"2026-07-28T03:31:36.145Z","repository":{"id":64486973,"uuid":"562726222","full_name":"second-state/docker-quark-benchmark","owner":"second-state","description":null,"archived":false,"fork":false,"pushed_at":"2022-12-27T14:52:30.000Z","size":2627,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-05-07T18:57:29.731Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/second-state.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-11-07T05:53:18.000Z","updated_at":"2022-11-16T17:13:40.000Z","dependencies_parsed_at":"2022-12-30T20:40:29.559Z","dependency_job_id":null,"html_url":"https://github.com/second-state/docker-quark-benchmark","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/second-state/docker-quark-benchmark","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/second-state%2Fdocker-quark-benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/second-state%2Fdocker-quark-benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/second-state%2Fdocker-quark-benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/second-state%2Fdocker-quark-benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/second-state","download_url":"https://codeload.github.com/second-state/docker-quark-benchmark/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/second-state%2Fdocker-quark-benchmark/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002563,"owners_count":26083403,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-10T02:43:22.517Z","updated_at":"2025-10-10T02:43:23.490Z","avatar_url":"https://github.com/second-state.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Usage\n\n- Install [Quark][]\n    - Use [commit b0dd795298c5804a0e323c6956d3149ce4a6c5e1](https://github.com/QuarkContainer/Quark/commit/92d1cb74ff6dbde184160e0bb400a7153a6f9e00)\n- Install [gVisor][].\n    - Use [commit f054c314ec020f0b26266f267221033ffda82b67](https://github.com/google/gvisor/commit/f054c314ec020f0b26266f267221033ffda82b67)\n- Install [Docker buildx plugin][buildx]\n- Build and install [second-state/runwasi][runwasi]\n    - Use [commit ba7ea907f8593ef677d46aee7edc0ff8e3cd4be8](https://github.com/second-state/runwasi/commit/ba7ea907f8593ef677d46aee7edc0ff8e3cd4be8)\n- Use [wasmedge branch of moby](https://github.com/CaptainVincent/moby/tree/wasmedge) for dockerd\n    - Use [commit 270211953ea4c3a88cae6eb566aa3a32d2d4b1ba](https://github.com/CaptainVincent/moby/commit/270211953ea4c3a88cae6eb566aa3a32d2d4b1ba)\n- Start `dockerd` with `quark` and `runsc` runtime and `config/daemon.json` config:\n\n```\nsudo dockerd -D -H unix:///tmp/dockerd/docker.sock \\\n    --data-root /tmp/dockerd/root \\\n    --pidfile /tmp/dockerd/docker.pid \\\n    --config-file config/daemon.json \\\n    --add-runtime quark=/usr/local/bin/quark \\\n    --add-runtime runsc=/usr/local/bin/runsc\n```\n\n- Create and use docker context:\n\n```\ndocker context create benchmark --docker host=unix:///tmp/dockerd/docker.sock\ndocker context use benchmark\n```\n\n- Run benchmarks:\n\n```\n./benchmark.sh \u003cCOUNT\u003e\n```\n\n- Results\n    - For time measurement, the unit is sec (lower is better).\n        - We use `time` command to monitor time usage.\n    - For memory measurement, the unit is MB (lower is better).\n        - We use `docker stats` command to monitor memory usage.\n        - Since [runwasi][] does not support `docker stats` to get memory usage,\n          we did not list memory usage for `benchmark_wasmedge_quickjs` here.\n\n```\n### container_start_time\nbenchmark_name                      min      max      avg      std\nbenchmark_runc_nodejs             0.419    0.454    0.436    0.011\nbenchmark_quark_nodejs            0.572    0.626    0.606    0.016\nbenchmark_gvisor_nodejs           0.671    0.759    0.707    0.027\nbenchmark_wasmedge_quickjs        0.346    0.392    0.360    0.013\n\n### container_execution_time\nbenchmark_name                      min      max      avg      std\nbenchmark_runc_nodejs            20.422   20.856   20.504    0.128\nbenchmark_quark_nodejs           20.701   20.804   20.753    0.032\nbenchmark_gvisor_nodejs          20.590   20.800   20.658    0.061\nbenchmark_wasmedge_quickjs       55.012   58.590   55.974    1.045\n\n### max_memory_usage\nbenchmark_name                      min      max      avg      std\nbenchmark_runc_nodejs           341.400  369.200  352.990    8.389\nbenchmark_quark_nodejs         1398.784 1446.912 1423.462   12.168\nbenchmark_gvisor_nodejs         355.400  380.100  367.000    9.080\n```\n\n## Environments\n\n- **benchmark_runc_nodejs**\n    - Use docker default runtime (runc) to start a `node:16` container to run `v8-v7` benchmark.\n- **benchmark_quark_nodejs**\n    - Use [Quark][] runtime to start a `node:16` container to run `v8-v7` benchmark.\n- **benchmark_gvisor_nodejs**\n    - Use [gVisor][] runtime to start a `node:16` container to run `v8-v7` benchmark.\n- **benchmark_wasmedge_quickjs**\n    - Use `wasmedge_quickjs.wasm` from [wasmedge-quickjs][].\n    - Compile `wasmedge_quickjs.wasm` to `wasmedge_quickjs.wasm.so` using `wasmedgec`.\n    - Use [second-state/runwasi][runwasi] WasmEdge runtime to start a container,\n      which uses `wasmedge_quickjs.wasm.so` as a javascript engine to run `v8-v7` benchmark.\n\n## Node.js Benchmarks\n\nHere we use [V8 benchmark suite version 7][v8-v7]. It contains the following benchmarks:\n\n- `crypto.js`\n    - Crypto related benchmarks.\n- `deltablue.js`\n    - A JavaScript implementation of the DeltaBlue constraint-solving algorithm.\n- `earley-boyer.js`\n    - Classic Scheme benchmarks translated to JavaScript.\n- `navier-stokes.js`\n    - 2D NavierStokes equations solver, heavily manipulates double precision arrays.\n- `raytrace.js`\n    - Ray tracer benchmark.\n- `regexp.js`\n    - Regular expression benchmark generated by extracting regular expression operations from 50 of the most popular web pages.\n- `richards.js`\n    - OS kernel simulation benchmark, originally written in BCPL.\n- `splay.js`\n    - Data manipulation benchmark that deals with splay trees and exercises the automatic memory management subsystem.\n- Check [here](https://developers.google.com/octane/benchmark) for more information.\n\n### Run the Node.js Benchmarks\n\n- Run it seperately:\n\n```\n$ cd nodejs/v8-v7/\n$ node crypto.js\n\nCrypto: 46674\n----\nScore (version 7): 46674\n```\n\n- Run all the benchmarks (score, higher is better):\n\n```\n$ cd nodejs/v8-v7/\n$ node v8-v7.js\n\nCrypto: 46714\nDeltaBlue: 83686\nEarleyBoyer: 65225\nNavierStokes: 43691\nRayTrace: 63639\nRegExp: 9799\nRichards: 45886\nSplay: 37323\n----\nScore (version 7): 43096\n```\n\n[Quark]: https://github.com/QuarkContainer/Quark\n[gVisor]: https://github.com/google/gvisor\n[buildx]: https://github.com/docker/buildx\n[v8-v7]: https://github.com/mozilla/arewefastyet/tree/master/benchmarks/v8-v7\n[wasmedge-quickjs]: https://github.com/second-state/wasmedge-quickjs\n[runwasi]: https://github.com/second-state/runwasi.git\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsecond-state%2Fdocker-quark-benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsecond-state%2Fdocker-quark-benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsecond-state%2Fdocker-quark-benchmark/lists"}