{"id":15018446,"url":"https://github.com/nativescript/sample-ios-profiling","last_synced_at":"2025-10-19T16:30:58.617Z","repository":{"id":32703670,"uuid":"36293180","full_name":"NativeScript/sample-iOS-Profiling","owner":"NativeScript","description":"Performance comparison of popular cross-platform frameworks","archived":false,"fork":false,"pushed_at":"2016-05-10T12:09:58.000Z","size":1004,"stargazers_count":29,"open_issues_count":1,"forks_count":5,"subscribers_count":43,"default_branch":"master","last_synced_at":"2024-10-29T15:51:53.092Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.nativescript.org","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}},"created_at":"2015-05-26T12:04:18.000Z","updated_at":"2022-06-03T07:39:43.000Z","dependencies_parsed_at":"2022-09-05T22:40:48.412Z","dependency_job_id":null,"html_url":"https://github.com/NativeScript/sample-iOS-Profiling","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NativeScript%2Fsample-iOS-Profiling","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NativeScript%2Fsample-iOS-Profiling/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NativeScript%2Fsample-iOS-Profiling/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NativeScript%2Fsample-iOS-Profiling/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NativeScript","download_url":"https://codeload.github.com/NativeScript/sample-iOS-Profiling/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237163213,"owners_count":19265227,"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-09-24T19:51:58.660Z","updated_at":"2025-10-19T16:30:53.185Z","avatar_url":"https://github.com/NativeScript.png","language":"JavaScript","readme":"# iOS\n### Scrolling UITableView\nA constantly scrolling UITableView. Has different row heights. Has custom cells with recycling, three UILabels in each cell. Objective-C code implementation is compared with the same JavaScript code in NativeScript for iOS. The apps were designed to keep constant 60 FPS.\n\nProjects:\n - _iOS/TNSScriptList_ - Objective-C implementation\n - _iOS/TNSNativeList_ - NativeScript for iOS implementation (without modules)\n - _iOS/TNSCrossList - NativeScript for iOS implementation (with modules)\n\nFor the _TNSScriptList_ app you will have to execute `tns platform add ios`, `tns prepare ios` and use the generated Xcode project in `platforms\\ios`.\n\nThe CPU and GPU samples are taken with the Xcode instruments. Open the Xcode projects go to Product \u003e Profile. The Memory usage is recorded in Xcode with the projects built in Release. The \n\nThe device used is iPhone 5S with iOS8.1.3\n\n#### Native (Objective-C)\n - Memory: ~6.4MB\n - CPU Activity: 31.3% Foreground, ~27% Graphics\n - GPU Driver FPS: ~59\n\n#### NativeScript without modules (NativeScript for iOS)\n - Memory: ~13MB and raises to flat at 48MB\n - CPU: 38% Foreground, ~27% Graphics\n - GPU Driver FPS: ~59\n\n#### NativeScript with modules (NativeScript for iOS + Cross Platform Modules)\n - Memory: ~27.5MB\n - CPU Activity: 39% Foreground, ~17% Graphics\n - GPU Driver FPS: ~59\n \n#### XamarinList (Xamarin application without Xamarin.Forms)\n - Memory: ~19MB (Instruments \u003e Allocation \u003e Persistent)\n - CPU Activity: 35.5% Foreground, ~27% Graphics\n - GPU Driver FPS: ~59\n \n#### Summary\n\nOverall the additional memory consumed is due to the JS heap and the way JavaScript objects retain the native Objective-C objects.\n\nAt such a simple scenario the modules does not add excessive overhead, they even add the benefit of clipping the content under the status bar for you, and use somewhat smaller CPU Activity: Graphics processing.\n\nThe CPU usage with NativeScript for iOS is about 21% higher than using pure Objective-C.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnativescript%2Fsample-ios-profiling","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnativescript%2Fsample-ios-profiling","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnativescript%2Fsample-ios-profiling/lists"}