A macOS microbenchmarking app for Swift that measures and visualizes algorithm performance with real-time log-log plots.
Attabench is a macOS microbenchmarking application specifically designed for Swift developers to measure and visualize the performance of low-level algorithms. It runs operations on random data across varying sizes and displays results in real-time using log-log plots, helping identify performance characteristics like time complexity and caching effects. The tool was originally created to generate charts for presentations and a book on optimizing Swift collections.
Swift developers and performance engineers working on macOS who need to analyze and optimize algorithm performance, particularly for collection types or low-level operations. It's especially useful for those writing books, giving talks, or conducting deep dives into algorithmic behavior.
Attabench offers a unique combination of real-time visualization with log-log plots, interactive benchmarking controls, and easy chart export, all tailored for Swift on macOS. Unlike generic benchmarking tools, it provides immediate visual feedback that reveals subtle performance nuances, such as cache line aliasing or memory access patterns, making it ideal for educational and optimization purposes.
Microbenchmarking app for Swift with nice log-log plots
Provides immediate insight into algorithm complexity with logarithmic scales on both axes, making it easy to spot performance characteristics like O(n) vs O(log n) behavior, as highlighted in the background and usage sections.
Allows developers to define their own tasks in Swift with input generators and task-specific measurements, as detailed in the 'Create Your Own Benchmarks' section with examples like Array.contains and Set.contains.
Enables dynamic task management, real-time chart updates, and flexible measurement controls, letting users filter tasks and adjust parameters on the fly without restarting benchmarks.
Supports dragging charts directly to Finder or using the included attachart command-line tool for PNG generation, ideal for documentation or presentations, as mentioned in the 'Get Chart Images Out of Attabench' section.
The project has been largely superseded by the Swift Collections Benchmark package and is no longer actively maintained, as warned in the README, making it risky for long-term use.
Requires manual installation of dependencies via Carthage, Xcode 9, and specific build steps, which is cumbersome compared to modern Swift packages that use Swift Package Manager.
Only works on macOS and primarily supports Swift, with minimal documentation for other languages via a custom IPC protocol, restricting its use in cross-platform or multi-language projects.
A static analyzer for Java, C, C++, and Objective-C
Strong typed, autocompleted resources like images, fonts and segues in Swift projects
The Swift code generator for your assets, storyboards, Localizable.strings, … — Get rid of all String-based APIs!
The unofficial WWDC app for macOS
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.