{"id":15141806,"url":"https://github.com/nativescript/nativescript-dev-fondue","last_synced_at":"2026-01-18T10:01:00.278Z","repository":{"id":141978439,"uuid":"57021388","full_name":"NativeScript/nativescript-dev-fondue","owner":"NativeScript","description":null,"archived":false,"fork":false,"pushed_at":"2016-04-28T12:14:18.000Z","size":7,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-10-17T00:00:02.787Z","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/NativeScript.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}},"created_at":"2016-04-25T07:38:23.000Z","updated_at":"2016-05-08T03:31:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"db8e868a-255f-4267-afbe-01c99056ca58","html_url":"https://github.com/NativeScript/nativescript-dev-fondue","commit_stats":{"total_commits":6,"total_committers":1,"mean_commits":6.0,"dds":0.0,"last_synced_commit":"2f99be53a0607fe7d70f739b211fc0d3744420fd"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NativeScript/nativescript-dev-fondue","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NativeScript%2Fnativescript-dev-fondue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NativeScript%2Fnativescript-dev-fondue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NativeScript%2Fnativescript-dev-fondue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NativeScript%2Fnativescript-dev-fondue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NativeScript","download_url":"https://codeload.github.com/NativeScript/nativescript-dev-fondue/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NativeScript%2Fnativescript-dev-fondue/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28534203,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"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-09-26T09:02:11.690Z","updated_at":"2026-01-18T10:01:00.220Z","avatar_url":"https://github.com/NativeScript.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Instrumentation profiling for the NativeScript framework\n\nTo use the tool first make sure you have everything in source control.\nThe instrumentation may brake stuff.\n\nInstallation:\n```\nnpm install nativescript-dev-fondue\n```\n\nInstrument the JavaScript. The following will rewrite the .js files in place without taking backups.\nYou can remove the `node_modules` folder and reinstall modules from `npm`.\nFor the `app` folder you may consider `git init`, `git commit`,\nand `git reset --hard` after you are done profiling.\n\nTo instrument files, at the root of your app use:\n```\n./node_modules/.bin/nsfondue \"node_modules/tns-core-modules/**/*.js\"\n./node_modules/.bin/nsfondue \"app/**/*.js\"\n```\nTry not to instrument the fondue itself.\n\nIn your `app/app.js` add the following require as a first statement:\n```\nvar calltree = require('nativescript-dev-fondue/tracers/calltree');\n```\n\nAvoid profiling large calltrees since output is now transfered through the\nconsole output to the host machine and may be slow. To start tracing execute the following in your app (on button tap?):\n```\ncalltree.start();\n```\nTo end the trace and dump the output call:\n```\ncalltree.stop();\n```\n\nWhen you are ready with the installation and have placed the instrumentation start/stop calls run:\n```\ntns run ios | ./node_modules/.bin/calltreefilter log.js\n```\nThe `calltreefilter` will redirect trace console logs to the logfile.js leaving other logs in the terminal.\nOpen `logfile.js` with VSCode, you should be able to use codefolding to navigate through calls.\n\nIn the log.js you should see traces such as:\n```\n// } missing start time for: Observable.notify node_modules/tns-core-modules/data/observable/observable.js:138:34~158:5\n// } missing start time for: Observable._emit node_modules/tns-core-modules/data/observable/observable.js:170:33~176:5\n// } missing start time for: ActionItem._raiseTap node_modules/tns-core-modules/ui/action-bar/action-bar-common.js:317:37~319:5\n// } missing start time for: TapBarItemHandlerImpl.tap node_modules/tns-core-modules/ui/action-bar/action-bar.ios.js:229:42~234:5\n// offset: 787066328.2049471\nDataSource.tableViewCellForRowAtIndexPath() { // node_modules/tns-core-modules/ui/list-view/list-view.ios.js:58:58~72:5\n  // start:    0ms\n  ListView._prepareCell() { // node_modules/tns-core-modules/ui/list-view/list-view.ios.js:265:38~300:5\n    // start:    0.08081090450286865ms\n    get view() { // node_modules/tns-core-modules/ui/list-view/list-view.ios.js:31:13~33:9\n      // start:    0.08956897258758545ms\n      // end:      0.09389388561248779ms\n    } // duration: 0.004324913024902344ms\n    notifyForItemAtIndex() { // node_modules/tns-core-modules/ui/list-view/list-view.ios.js:39:0~43:1\n      // start:    0.10458683967590332ms\n      Observable.notify() { // node_modules/tns-core-modules/data/observable/observable.js:138:34~158:5\n        // start:    0.1276949644088745ms\n        Observable._getEventList() { // node_modules/tns-core-modules/data/observable/observable.js:177:41~187:5\n          // start:    0.13662993907928467ms\n          // end:      0.1387479305267334ms\n        } // duration: 0.0021179914474487305ms\n        // end:      0.13974297046661377ms\n      } // duration: 0.012048006057739258ms\n      // end:      0.14091193675994873ms\n    } // duration: 0.03632509708404541ms\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnativescript%2Fnativescript-dev-fondue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnativescript%2Fnativescript-dev-fondue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnativescript%2Fnativescript-dev-fondue/lists"}