{"id":15912777,"url":"https://github.com/chriskrycho/memory-perf","last_synced_at":"2026-06-09T12:31:02.158Z","repository":{"id":75462793,"uuid":"310065276","full_name":"chriskrycho/memory-perf","owner":"chriskrycho","description":"Compare memory usage of Ember classic components and Glimmer components","archived":false,"fork":false,"pushed_at":"2020-11-04T18:21:45.000Z","size":190,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-01T21:51:10.141Z","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/chriskrycho.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}},"created_at":"2020-11-04T17:01:04.000Z","updated_at":"2020-11-04T22:11:24.000Z","dependencies_parsed_at":"2023-06-06T13:30:49.132Z","dependency_job_id":null,"html_url":"https://github.com/chriskrycho/memory-perf","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chriskrycho/memory-perf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chriskrycho%2Fmemory-perf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chriskrycho%2Fmemory-perf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chriskrycho%2Fmemory-perf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chriskrycho%2Fmemory-perf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chriskrycho","download_url":"https://codeload.github.com/chriskrycho/memory-perf/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chriskrycho%2Fmemory-perf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34107865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"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":"2024-10-06T16:20:52.286Z","updated_at":"2026-06-09T12:31:02.138Z","avatar_url":"https://github.com/chriskrycho.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# memory-perf\n\nA microbenchmark of memory usage of Ember Classici Component and Glimmer\nComponent.\n\n## Methodology\n\nTo compare the memory usage, this app renders two components with the same API\nand the same internal structure, but using idiomatic Classic and Octane code:\n\n- one argument\n- one internal piece of ‘root’ state\n    - a plain property in the Classic component\n    - a `@tracked` property in the Glimmer component\n- seven computed properties\n    - implemented with `@computed` in the Classic component\n    - implemented as bare getters in the Glimmer component\n\nFor running the benchmark, I created a page which rendered *one* of the\ncomponent types either 1,000 or 10,000 times, ran a production build, and served\nthe resulting assets by running `ember serve --path dist`, and took a Chrome\nheap snapshot. [`application.hbs`](./app/templates/application.hbs) has both\ncomponent invocations; commenting either out gets the equivalent result.\n\n## Results\n\nAfter running the heap snapshot for 1,000 and 10,000 components each 5× against\neach of the Classic and Glimmer component implementations, there appears to be\nno meaningful difference in memory usage between Classic components with\ncomputed properties and Glimmer components with tracked state and bare getters.\n\n## Machine info\n\nThis test result was generated on a 2019 Retina 5k iMac with the following\nconfiguration:\n\n|  config   |            value            |\n| --------- | --------------------------- |\n| Processor | 3.7GHz 8-Core Intel Core i9 |\n| Memory    | 64GB RAM 2667 MHz DD4       |\n| Graphics  | Radeon Pro 580X 8 GB        |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchriskrycho%2Fmemory-perf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchriskrycho%2Fmemory-perf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchriskrycho%2Fmemory-perf/lists"}