{"id":18287073,"url":"https://github.com/handsontable/performance-lab","last_synced_at":"2025-04-05T08:31:33.692Z","repository":{"id":21276616,"uuid":"24592500","full_name":"handsontable/performance-lab","owner":"handsontable","description":"JavaScript performance tests for Handsontable","archived":false,"fork":false,"pushed_at":"2023-10-06T09:55:58.000Z","size":6575,"stargazers_count":12,"open_issues_count":0,"forks_count":4,"subscribers_count":18,"default_branch":"master","last_synced_at":"2024-04-15T07:40:11.650Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/handsontable.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2014-09-29T11:34:32.000Z","updated_at":"2024-07-18T15:34:50.502Z","dependencies_parsed_at":"2024-07-18T15:34:35.301Z","dependency_job_id":"93312e8b-c077-4449-aa6b-a45eab30a40a","html_url":"https://github.com/handsontable/performance-lab","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/handsontable%2Fperformance-lab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/handsontable%2Fperformance-lab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/handsontable%2Fperformance-lab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/handsontable%2Fperformance-lab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/handsontable","download_url":"https://codeload.github.com/handsontable/performance-lab/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247311624,"owners_count":20918336,"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","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":"2024-11-05T13:24:15.893Z","updated_at":"2025-04-05T08:31:33.643Z","avatar_url":"https://github.com/handsontable.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Performance Lab\n\nJavaScript performance tests for Handsontable\n\n## Install\n\nThe minimal Node version which this project can run on is 14. Make sure that your version meets that criteria before\nyou continue with the installation.\n\nInstall dependencies via [NPM](https://npmjs.com/)\n\n```sh\n$ npm install\n```\n\nTest results are stored in MongoDB instance so it is necessary to set up the DB before you run the script. If you have\n[docker](https://www.docker.com/) installed you can run services using [docker-compose](https://github.com/docker/compose).\n\n```sh\ndocker-compose -f docker/docker-compose.yml up\n```\n\n## Run It\n\nTo run performance tests and save the results to the DB execute\n\n```sh\n$ ./bin/hot-perf run\n```\n\nor\n\n```sh\n$ npm run start\n```\n\nPerformance tests are defined in the `test/spec` directory. Each test contains code which prepares Handsontable for tests\nand block of code which then executes several times (defined as SAMPLE_SIZE in the `lib/config.js` file). After each\ncall, stats are collected and after the amount of iteration hit the SAMPLE_SIZE the result is saved to the database.\n\nOnce completed you can view generated test reports by running `./bin/hot-perf local-server benchmark-viewer`.\nIt serves a page where you can compare your generated results between different Handsontable versions and different test cases.\n\n## Usage\n\n##### ```\u003e ./bin/hot-perf run``` (or ```\u003e ./bin/hot-perf r```)\n\nIt runs a benchmark by running all spec files defined in the `test/spec` directory. Once completed results are saved to the database.\n\n##### ```\u003e ./bin/hot-perf local-server benchmark-viewer``` (or ```\u003e ./bin/hot-perf ls bv```)\n\nRuns a local server where you can see the test results.\n\nArguments:\n- ```test-runner``` (or ```tr```) - It serves a test runner page which is used by protractor to test the Handsontable.\n- ```benchmark-viewer``` (or ```bv```) - It serves a page which is used to view results generated by the `run` command.\n\n### Global options:\n- ```--hot-version``` - Selects version of the Handsontable to test (it has to be a version which is accessible through [jsdelivr](https://www.jsdelivr.com/)). If not specified the `latest` tag is used. For example `--hot-version=6.2.2`.\n- ```--hot-server``` - Selects a server to be used to serve the Handsontable assets. For example `--hot-server=http://localhost:8082`. If\nused the assets are loaded from `dist` directory, such as `http://localhost:8082/dist/handsontable.full.css`.\n- ```--test-name``` - The name under which the test will be saved. For example `--test-name=my-feature`. If a test by that name is already stored, it will be replaced with the new test results.\n- ```--cpu-throttle-rate``` - The argument sets the CPU throttle rate for the browser. Adjusting the clock speed of the CPU slows down the computer. This can be useful for detecting slight deviations in performance that normally cannot be seen on a fast computer. It's advisable to perform the tests with rate sets as 4, for example, `--cpu-throttle-rate=4`.\n\n## License\n\n[MIT License](https://opensource.org/licenses/MIT)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhandsontable%2Fperformance-lab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhandsontable%2Fperformance-lab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhandsontable%2Fperformance-lab/lists"}