native-app-performance
Native macOS/iOS app performance profiling via xctrace/Time Profiler and CLI-only analysis of Instruments traces. Use when asked to profile, attach, record, or analyze Instruments .trace files, find hotspots, or optimize native app performance without opening Instruments UI.
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Native macOS/iOS app performance profiling via xctrace/Time Profiler and CLI-only analysis of Instruments traces. Use when asked to profile, attach, record, or analyze Instruments .trace files, find hotspots, or optimize native app performance without opening Instruments UI.
How to use
Zainstaluj umiejętność, dodając katalog native-app-performance do swojego konfigu Claude (np. ~/.claude/skills/).
Aby nagrać profil wydajności, wybierz jedną z dwóch metod: jeśli aplikacja już działa, użyj komendy attach z identyfikatorem procesu; jeśli chcesz uruchomić aplikację z profilerem, użyj komendy launch ze ścieżką do binarka. W obu przypadkach xctrace zapisze plik .trace na dysku.
Ekstrahuj próbki czasu z pliku trace za pomocą skryptu extract_time_samples.py, podając ścieżkę do nagraniaego pliku trace. Skrypt wygeneruje plik XML zawierający dane czasowe.
Pobierz adres ładowania sekcji __TEXT z uruchomionej aplikacji za pomocą vmmap i identyfikatora procesu — ten adres jest potrzebny do prawidłowej symbolizacji stosu wywołań (ASLR zmienia adresy przy każdym uruchomieniu).
Uruchom skrypt top_hotspots.py, przekazując plik XML z próbkami, ścieżkę do binarka aplikacji, adres ładowania i liczbę top funkcji do wyświetlenia (np. top 30). Skrypt zwróci ranking funkcji zużywających najwięcej czasu CPU.
Przeanalizuj wyniki — funkcje na górze listy to wąskie gardła. Upewnij się, że podczas nagrywania profilatora wyzwoliłeś powolną operację (otwarcie menu, odświeżenie danych itp.), aby uchwycić istotne dane.