From a simple linear Basic program, or a command tool like tar, to working with macOS to get threads allocated to the most appropriate cores and run at the right frequency.
QoS
Apple silicon architecture is designed to get background processes out of the way of our apps running in the foreground, by using the E cores.
Why is tar so slow to create a tar.gzip archive on a fast Apple silicon Mac? Is it being run at low QoS on the E cores? An explanation.
How much faster are the P cores in M3 and M4 chips, compared to late Intel Macs? How do they compare when running threads at low QoS, such as those of macOS background tasks?
How apps and processes set their priority, and on Apple silicon that determines which type of core they can be run on. What you can do to alter that.
How to more than double the speed of a thread run on the E cores, by running another 11 threads at the same time.
Can you promote threads set to run on E cores so they run on P cores instead? Can you demote threads set to run on cores so they run in the background on E cores?
How Swift supports cooperative multitasking using async/await. How to call asynchronous code from within synchronous code, and does it also multithread code in parallel?
The general rule for allocating threads to P and E cores according to their QoS, with fine controls such as Game Mode, and frequency control.
Understanding terms, including process, thread and task. How the assigned Quality of Service, or QoS, is used to determine how threads are allocated to cores.
