{"id":30342720,"url":"https://github.com/softdevteam/v8_paper_experiment","last_synced_at":"2026-02-10T05:34:16.157Z","repository":{"id":272443560,"uuid":"916609382","full_name":"softdevteam/v8_paper_experiment","owner":"softdevteam","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-19T14:23:06.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-08-18T10:42:25.326Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/softdevteam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","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":"2025-01-14T12:41:42.000Z","updated_at":"2025-03-19T14:23:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"d4470c0b-56e3-4c65-908a-49aaf26a90a0","html_url":"https://github.com/softdevteam/v8_paper_experiment","commit_stats":null,"previous_names":["softdevteam/v8_paper_experiment"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/softdevteam/v8_paper_experiment","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softdevteam%2Fv8_paper_experiment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softdevteam%2Fv8_paper_experiment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softdevteam%2Fv8_paper_experiment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softdevteam%2Fv8_paper_experiment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/softdevteam","download_url":"https://codeload.github.com/softdevteam/v8_paper_experiment/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softdevteam%2Fv8_paper_experiment/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29291168,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T03:42:42.660Z","status":"ssl_error","status_checked_at":"2026-02-10T03:42:41.897Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-08-18T10:41:18.748Z","updated_at":"2026-02-10T05:34:16.137Z","avatar_url":"https://github.com/softdevteam.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Experiment for V8 Handles Paper\n\nThis is the experiment for the [V8 handles\npaper](https://github.com/sfotdevteam/v8_handles_paper). It uses the\n[BrowserBench](https://browserbench.org/) benchmarking suite (JetStream3,\nMotionMark1.2, Speedometer2.1) to compare four different Chrome configurations: \n\n* ***Handles***: pointers to heap objects on the stack use indirection to\n  inform the collector of roots. The GC does not use conservative stack\n  scanning. (currently in use in production)\n* ***Direct Refs***: uses \"regular\" pointers to heap objects on the stack. The\n  GC uses conservative scanning to identify pointers on the stack (enabled by\n  the `v8_enable_conservative_stack_scanning=true` GN arg).\n* ***Handles (no compression)***: ***Handles***, but with pointer compression\n  disabled (`v8_enable_pointer_compression=false`).\n* ***Direct Refs (no compression)***: ***Direct Refs***, but with pointer\n  compression disabled (`v8_enable_pointer_compression=false`).\n\nAll configurations are built using the same GN arguments:\n\n```\ndcheck_always_on=false\nis_debug=false\nenable_nacl=false\nis_component_build=false\n```\n\nFor more information, the accompanying design document can be found\n[here](https://docs.google.com/document/d/1bOPW-Bb_aAefrgXGI8yhwEPxULePkLcNY8RaOvnbJKU/edit?tab=t.0#heading=h.wb0el8iqan2r).\n\n## Running the experiments\n\nTo run the experiments on your local machine, you need to install dependencies\nfor your Linux distribution listed in the [Chromium build\ninstructions](https://chromium.googlesource.com/chromium/src/+/main/docs/linux/build_instructions.md#notes-for-other-distros).\n\n\u003e [!NOTE]\n\u003e If you intend to benchmark on a machine without an X/Wayland display server,\n\u003e you can set the `USE_XVFB=true` environment variable to ensure that Chrome is\n\u003e run inside a virtual display. You will need to have `xvfb` installed to use this.\n\nThen you can run `make` to build and run the experiments.\nYou can set the `ITERS` environment variable to specify the number of times\neach benchmark should be run. By default this is 10.\n\n\u003e [!IMPORTANT]\n\u003e For more reliable results, ensure that CPU frequency scaling is set to\n\u003e `performance`. There is a convenience script for this in the V8 repo which is\n\u003e available after `make build` has finished downloading Chromium. It can be\n\u003e enabled as follows:\n\u003e\n\u003e `sudo ./chromium/src/v8/tools/cpu.sh performance`\n\nIf you have access to Google's remoteexec build server, you can use set\n`USE_REMOTE_EXEC=true` to ensure `make build` uses this.\n\nAfter the experiments have run, the results will be available in\n`chromium/src/third_party/crossbench/results`.\n\n## Results output\n\nCurrently, this script outputs the results of each benchmark to a file\ncontaining a table formatted using Markdown. We'll want to change this at some\npoint, but for now it can be easily modified by editing `process.py` to output\nthe results in a format of your choosing.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftdevteam%2Fv8_paper_experiment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoftdevteam%2Fv8_paper_experiment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftdevteam%2Fv8_paper_experiment/lists"}