macOS Command tools, threads and QoS
17 hours ago
- #macOS
- #QoS
- #performance
- Fast Apple silicon Macs may take a long time to tar and Gzip large folders due to threading and Quality of Service (QoS) settings.
- Threading affects performance: single-threaded processes can only run on one CPU core at a time, limiting speed.
- macOS assigns threads to cores based on QoS, with higher QoS (e.g., 33 for userInteractive) typically running on Performance (P) cores and lower QoS (e.g., 9 for background) on Efficiency (E) cores.
- Command-line tools like tar are not necessarily assigned low QoS; their slowness often stems from being single-threaded rather than running on E cores.
- Activity Monitor's CPU History can help identify which core types (P or E) are being utilized by a process.
- Multi-threaded compression tools (e.g., Cormorant, Keka) perform faster than single-threaded ones (e.g., tar) by leveraging multiple P cores.
- Background tasks (e.g., LaunchAgents, LaunchDaemons) often run at low QoS (9 or lower) on E cores, as specified in their property lists.
- For better performance, use multi-threaded alternatives to single-threaded tools like tar.