{"id":15541380,"url":"https://github.com/mike-north/ember-perf","last_synced_at":"2025-04-05T11:05:34.961Z","repository":{"id":35384617,"uuid":"39647953","full_name":"mike-north/ember-perf","owner":"mike-north","description":"Measure user-percieved performance data in your ember.js app","archived":false,"fork":false,"pushed_at":"2025-03-24T19:15:06.000Z","size":3986,"stargazers_count":73,"open_issues_count":29,"forks_count":20,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-01T05:34:34.210Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://mike.works/ember-perf","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/mike-north.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2015-07-24T17:37:27.000Z","updated_at":"2025-02-24T16:25:50.000Z","dependencies_parsed_at":"2023-12-18T13:26:23.519Z","dependency_job_id":"8495ea20-b333-4cfc-8dd6-6997ab4d2a56","html_url":"https://github.com/mike-north/ember-perf","commit_stats":{"total_commits":415,"total_committers":14,"mean_commits":"29.642857142857142","dds":0.6337349397590362,"last_synced_commit":"7ca48d70c73a1979634315116c8adb2efde1581a"},"previous_names":["truenorth/ember-perf"],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mike-north%2Fember-perf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mike-north%2Fember-perf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mike-north%2Fember-perf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mike-north%2Fember-perf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mike-north","download_url":"https://codeload.github.com/mike-north/ember-perf/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247325693,"owners_count":20920714,"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-10-02T12:16:53.300Z","updated_at":"2025-04-05T11:05:34.937Z","avatar_url":"https://github.com/mike-north.png","language":"JavaScript","funding_links":[],"categories":["Packages","Tools"],"sub_categories":["Tools"],"readme":"# ember-perf\n\n[![Greenkeeper badge](https://badges.greenkeeper.io/mike-north/ember-perf.svg)](https://greenkeeper.io/)\n\n[![Ember Observer Score](http://emberobserver.com/badges/ember-perf.svg)](http://emberobserver.com/addons/ember-perf)\n[![Dependency Status](https://david-dm.org/mike-north/ember-perf.svg)](https://david-dm.org/mike-north/ember-perf)\n[![devDependency Status](https://david-dm.org/mike-north/ember-perf/dev-status.svg)](https://david-dm.org/mike-north/ember-perf#info=devDependencies)\n[![Code Climate](https://codeclimate.com/github/mike-north/ember-perf/badges/gpa.svg)](https://codeclimate.com/github/mike-north/ember-perf)\n\nPackage | Ember Versions | Version | Status\n--------|----------------|---------|--------\n`ember-perf` | `1.11 - 1.13`, `2.4-lts`, `2.8-lts`, `2.12.2`, `Release`, `Beta` | [![npm version](https://badge.fury.io/js/ember-perf.svg)](http://badge.fury.io/js/ember-perf) | [![Build Status](https://travis-ci.org/mike-north/ember-perf.svg?branch=master)](https://travis-ci.org/mike-north/ember-perf)\n\n\nPage load performance instrumentation for ember.js apps\n\n## Setup\n\n```sh\n# Ember.js \u003e= 1.11\nember install ember-perf\n```\n\n### Responding to performance events\n\n#### Transition Events\n\nFirst, create an initializer, which will set up an event listener to monitor\nperformance events\n\n```sh\nember g ember-perf-initializer monitor-perf\n\n```\n\nThis will create files for you called\n\n* **app/initializers/monitor-perf.js**\n* **app/instance-initializers/monitor-perf.js**\n\nYou then need to go to the instance intializer and fill in the body of the event listener with something useful (i.e., sending the performance data somewhere).\n\n```js\nperfService.on('transitionComplete', transitionData =\u003e {\n  // DO SOMETHING WITH TRANSITION DATA\n});\n```\n\n#### Render Events\n\nTo track render performance within a single route (i.e. how long did it take for an action triggered rerender to complete), you would use the `measureRender` method.\n\n```js\n// app/components/x-foo.js\nexport default Ember.Component.extend({\n  emberPerf: Ember.inject.service(),\n\n  actions: {\n    measureStuff() {\n      const perf = this.get('emberPerf');\n\n      perf.measureRender()\n        .then(function(result) {\n          // do things with the result\n        });\n    }\n  }\n});\n```\n\nYou can also use the `renderComplete` event on the service from `app/instance-initializers/monitor-perf.js`:\n\n```js\nperfService.on('renderComplete', renderData =\u003e {\n  // Do awesome things!\n});\n```\n\n### What does this `transitionData` object look like?\n\nHere's an example\n\n```js\n{\n\t\"destURL\": \"/\",\n\t\"destRoute\": \"index\",\n\t\"startTime\": 402.85299999959534,\n\t\"endTime\": 427.16400000063004,\n\t\"routes\": [{\n\t\t\"name\": \"application\",\n\t\t\"debugContainerKey\": \"route:application\",\n\t\t\"startTime\": 408.78300000076706,\n\t\t\"views\": [],\n\t\t\"endTime\": 413.8860000002751,\n\t\t\"elapsedTime\": 5.102999999508029\n\t}, {\n\t\t\"name\": \"index\",\n\t\t\"debugContainerKey\": \"route:index\",\n\t\t\"startTime\": 415.29199999968114,\n\t\t\"views\": [0, 1, 2], // references to viewData array (by index)\n\t\t\"endTime\": 418.11000000052445,\n\t\t\"elapsedTime\": 2.8180000008433126\n\t}],\n\t\"viewData\": [{\n\t\t\"startTime\": 431.6899999994348,\n\t\t\"id\": \"ember341\",\n\t\t\"containerKey\": \"view:-outlet\",\n\t\t\"endTime\": 464.19799999966926,\n\t\t\"elapsedTime\": 32.50800000023446\n\t}, {\n\t\t\"startTime\": 438.75200000002224,\n\t\t\"id\": \"ember347\",\n\t\t\"containerKey\": \"view:toplevel\",\n\t\t\"parentViewId\": \"ember341\",\n\t\t\"endTime\": 463.9900000001944,\n\t\t\"elapsedTime\": 25.23800000017218\n\t}, {\n\t\t\"startTime\": 450.5559999997786,\n\t\t\"id\": \"ember365\",\n\t\t\"containerKey\": \"component:-link-to\",\n\t\t\"parentViewId\": \"ember347\",\n\t\t\"endTime\": 463.54000000064843,\n\t\t\"elapsedTime\": 12.984000000869855\n\t}],\n\t\"elapsedTime\": 24.3110000010347\n}\n```\n\n### Configuration\n\nThis addon can be configured in your **config/environment.js** file\n\n```js\nif (environment === 'development') {\n\t// Log transition performance\n\tENV.emberPerf = {\n      debugMode: true\n    };\n}\n\n```\n\n* **debugMode** (default: `false`) - Logs transition performance to the browser console\n\n![TransitionPerformance](http://i60.tinypic.com/2dtvfwz.png)\n\n### Warning\n\\*Ember 2.3 doesn't work with `ember-perf`.\n\n## Developer Installation\n\n* `git clone` this repository\n* `npm install`\n* `bower install`\n\n## Running\nRunning the app using an ember-try scenario\n* `ember try:one \u003cEMBER_TRY_SCENARIO\u003e --- ember serve` ( for example `ember try:one ember-2.4 --- ember serve`)\n* Visit the app at http://localhost:4200.\n\n## Running Tests\n\n#### All Supported Ember Versions\n* `npm test`\n\n#### Individual Ember Versions\n* `ember try:one \u003cEMBER_TRY_SCENARIO\u003e` (for example, `ember try:one ember-2.4`)\n* `ember try:one \u003cEMBER_TRY_SCENARIO\u003e --- ember test --server` (for example, `ember try:one ember-2.4 --- ember test --server`)\n\n#### Reset Dependencies\n* `ember try:reset`\n\nThis command restores the original bower.json from bower.json.ember-try, rm -rfs bower_components and runs bower install. For use if any of the other commands fail to clean up after (they run this by default on completion).\n\n## Building\n\n* `ember build`\n\nFor more information on using ember-cli, visit [http://www.ember-cli.com/](http://www.ember-cli.com/).\n\n![Analytics](https://ga-beacon.appspot.com/UA-66610985-1/mike-north/ember-perf/readme)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmike-north%2Fember-perf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmike-north%2Fember-perf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmike-north%2Fember-perf/lists"}