Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Swift
  3. xcprofiler

xcprofiler

MITRuby

A CLI tool to profile and analyze Swift compilation times by parsing Xcode build logs.

GitHubGitHub
343 stars11 forks0 contributors

What is xcprofiler?

xcprofiler is a command-line tool that profiles Swift project compilation times by analyzing Xcode build logs. It helps developers identify which functions and files are taking the longest to compile, enabling targeted optimizations to speed up build processes. The tool extracts timing data from Xcode's activity logs and presents it in a readable format.

Target Audience

Swift developers and iOS/macOS engineering teams who want to optimize their project's compilation performance and reduce build times, especially in large codebases.

Value Proposition

xcprofiler provides granular, actionable insights into Swift compilation bottlenecks directly from Xcode logs, unlike generic profiling tools. Its extensible reporter system and Danger integration make it easy to incorporate into existing development workflows.

Overview

:chart_with_upwards_trend: CLI to profile compilation time of Swift project

Use Cases

Best For

  • Identifying slow-compiling Swift functions in large projects
  • Integrating build performance checks into CI/CD pipelines
  • Generating JSON reports for automated analysis of compilation times
  • Comparing compilation performance across different Xcode versions or Swift compilers
  • Educating teams about compilation costs of specific Swift language features
  • Automating performance regression detection in pull requests

Not Ideal For

  • Projects not using Xcode for Swift development, such as Linux-based or cross-platform setups
  • Teams needing real-time compilation monitoring during the build process
  • Developers focused exclusively on runtime performance rather than compile-time bottlenecks
  • Small codebases with minimal compilation overhead where setup complexity outweighs benefits

Pros & Cons

Pros

Granular Compilation Insights

Parses Xcode .xcactivitylog files to provide per-function and per-file timing data, enabling precise identification of slow-compiling code segments.

Customizable Output Formats

Supports terminal tables, JSON, and custom reporters, allowing integration into various workflows, as shown in the extensible reporting section.

CI/CD Automation

Offers a Danger plugin for automated performance checks in pull requests, facilitating continuous integration and regression detection.

Extensible Architecture

Enables implementation of custom reporters via Ruby, making it adaptable to specific team needs and toolchains.

Cons

Setup Complexity

Requires manually adding -Xfrontend -debug-time-function-bodies flags to Xcode projects, which can be error-prone and disrupt existing configurations.

Ecosystem Lock-in

Tightly coupled with Xcode's build logs and Ruby for installation, limiting usability in non-Xcode environments or teams avoiding Ruby dependencies.

Limited Maintenance Signals

Tested on older Ruby versions (2.3/2.4) and developed as part of work for Cookpad, which may indicate slower updates or compatibility issues with newer systems.

Frequently Asked Questions

Quick Stats

Stars343
Forks11
Contributors0
Open Issues5
Last commit7 years ago
CreatedSince 2016

Tags

#build-tools#ruby-gem#developer-productivity#ci-cd#cli#performance-profiling#swift#xcode

Built With

R
Ruby

Included in

Swift26.0k
Auto-fetched 9 hours ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub