{"id":20683196,"url":"https://github.com/chimehq/textviewbenchmark","last_synced_at":"2025-04-22T12:22:00.175Z","repository":{"id":192896428,"uuid":"687536773","full_name":"ChimeHQ/TextViewBenchmark","owner":"ChimeHQ","description":"A suite of performance tests for macOS text views","archived":false,"fork":false,"pushed_at":"2024-10-15T10:37:34.000Z","size":37,"stargazers_count":32,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-29T15:05:24.463Z","etag":null,"topics":["macos","nstextview","swift","textkit","textkit2"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ChimeHQ.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}},"created_at":"2023-09-05T14:57:12.000Z","updated_at":"2024-10-15T10:37:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"46d7b0d5-d721-42d7-b1ba-8b41ae5c5087","html_url":"https://github.com/ChimeHQ/TextViewBenchmark","commit_stats":null,"previous_names":["chimehq/textviewbenchmark"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChimeHQ%2FTextViewBenchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChimeHQ%2FTextViewBenchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChimeHQ%2FTextViewBenchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChimeHQ%2FTextViewBenchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ChimeHQ","download_url":"https://codeload.github.com/ChimeHQ/TextViewBenchmark/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250237912,"owners_count":21397414,"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":["macos","nstextview","swift","textkit","textkit2"],"created_at":"2024-11-16T22:15:53.322Z","updated_at":"2025-04-22T12:22:00.152Z","avatar_url":"https://github.com/ChimeHQ.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TextViewBenchmark\nA suite of performance tests for macOS text views\n\nEvery year, I check in on TextKit 2 to see how things are going. It was introduced in macOS 12, and I found it basically unusable. With macOS 13 it was better, but still rough. So far, on macOS 14, it seems like it might be ok! I was originally having some performance problems. So, I took some time to put together some automated performance tests.\n\n## Usage\n\nThe tests are automated using XCTest's UI performance testing system, backed by custom `OSSignpost`. I find this really wonderful for both repeatibility and Instruments usage.\n\nIf you want to set up your own view for testing, you can do something like this:\n\n```swift\nstatic func withScrollableTextView() -\u003e TextViewController {\n    let scrollView = NSTextView.scrollableTextView()\n    let textView = scrollView.documentView as! NSTextView\n\n    return TextViewController(textView: textView, scrollView: scrollView)\n}\n```\n\n## Results\n\nI'm using macOS 14 beta, so that may be a factor. Based on these tests, TextKit 1 is extremely fast and TextKit 2 actually even a small amount faster!\n\n## Contributing and Collaboration\n\nI'd love to hear from you! Get in touch via an issue or pull request.\n\nI prefer collaboration, and would love to find ways to work together if you have a similar project.\n\nI prefer indentation with tabs for improved accessibility. But, I'd rather you use the system you want and make a PR than hesitate because of whitespace.\n\nBy participating in this project you agree to abide by the [Contributor Code of Conduct](CODE_OF_CONDUCT.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchimehq%2Ftextviewbenchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchimehq%2Ftextviewbenchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchimehq%2Ftextviewbenchmark/lists"}