{"id":31955471,"url":"https://github.com/eggjs/benchmark","last_synced_at":"2025-10-14T14:17:32.019Z","repository":{"id":62815328,"uuid":"63792326","full_name":"eggjs/benchmark","owner":"eggjs","description":"benchmark for egg","archived":false,"fork":false,"pushed_at":"2025-08-01T10:04:34.000Z","size":70,"stargazers_count":20,"open_issues_count":3,"forks_count":11,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-09-17T12:44:48.612Z","etag":null,"topics":["egg"],"latest_commit_sha":null,"homepage":"https://eggjs.github.io/benchmark/plot/","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/eggjs.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-07-20T15:24:16.000Z","updated_at":"2024-10-26T13:58:13.000Z","dependencies_parsed_at":"2024-11-06T06:36:08.069Z","dependency_job_id":"4ec64a6b-8519-4394-9957-11d9e3641a84","html_url":"https://github.com/eggjs/benchmark","commit_stats":{"total_commits":29,"total_committers":5,"mean_commits":5.8,"dds":"0.31034482758620685","last_synced_commit":"1aa236fd62974b8062323c035a62300864f76290"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/eggjs/benchmark","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggjs%2Fbenchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggjs%2Fbenchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggjs%2Fbenchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggjs%2Fbenchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eggjs","download_url":"https://codeload.github.com/eggjs/benchmark/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggjs%2Fbenchmark/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279019260,"owners_count":26086576,"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-14T02:00:06.444Z","response_time":60,"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":["egg"],"created_at":"2025-10-14T14:17:31.486Z","updated_at":"2025-10-14T14:17:32.012Z","avatar_url":"https://github.com/eggjs.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# benchmark\n\negg benchmark\n\n## Commands\n\n* `npm test` to run all the benchmarks and store the results in `stats.csv` (requires `wrk`), also you can open `plot/index.html` to see the results\n* `./plot.sh` to compare performance between the latest releases of Node.js v7.x, v8.x, rc, nightly and v8-canary (requires `wrk` and `nvm`), then open `plot/index.html` to see the results\n  * Requires AJAX privilege to load data from `plot/all.csv`, you can run `python -m SimpleHTTPServer` then visit `http://localhost:8000/plot/` (or use any other static server) if you don't want to tweak browser settings\n\n## Default Middleware\n\n- egg default enable 15 middlewares (6 security middlewares enable by default)\n- enable router\n- passport has 17 middlewares (15 default, 2 passport middlewares)\n- csrf are disabled, because in most situation we won't caculate csrf token and set to cookie\n\n## Scenes\n\n- Hello World: `$ EGG_SERVER_ENV=prod node benchmarks/simple/dispatch.js`\n- nunjucks: `$ EGG_SERVER_ENV=prod node benchmarks/simple_view/dispatch.js`\n- Empty passport: `$ EGG_SERVER_ENV=prod node benchmarks/simple_passport/dispatch.js`\n\n## Scripts\n\n- koa1: `wrk http://127.0.0.1:7001/ -d 10 -c 50 -t 8`\n- koa2: `wrk http://127.0.0.1:7002/ -d 10 -c 50 -t 8`\n- egg1: `wrk http://127.0.0.1:7003/ -d 10 -c 50 -t 8`\n- egg2: `wrk http://127.0.0.1:7004/ -d 10 -c 50 -t 8`\n- egg3: `wrk http://127.0.0.1:7005/ -d 10 -c 50 -t 8`\n- egg3 with worker_threads: `wrk http://127.0.0.1:7006/ -d 10 -c 50 -t 8`\n\n## Server\n\n- MacBook Pro (Retina, 15-inch, Late 2013)\n- 2 GHz Intel Core i7 (only use 4 core for benchmark)\n\n## CPU Profiler\n\n![image](https://user-images.githubusercontent.com/985607/32961302-a6d1d506-cb8d-11e7-9273-160d8ba77da6.png)\n\n## Known issues\n\n- `Date.now()` cost a lot of CPU time(7%) in `meta` middleware and `CreateContext` method.\n\n## Last Results\n\n- [Visualization](https://eggjs.github.io/benchmark/plot/)\n- [Statistics data](https://github.com/eggjs/benchmark/blob/master/plot/all.csv)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feggjs%2Fbenchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feggjs%2Fbenchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feggjs%2Fbenchmark/lists"}