Het is geen geheim dat Mac-apparaten met Apples M1-soc goede prestaties bieden voor het verbruik. Daarnaast merken vele gebruikers op dat hun apparaat ook sneller aanvoelt. Howard Oakley van Eclectic Light is op onderzoek uitgegaan en heeft de macOS-scheduler onder de loep genomen.
De MacBook Pro, MacBook Air en Mac mini waren de eerste toestellen met de M1-soc.
Om een programma efficiënt te laten werken, kunnen ontwikkelaars kenmerken toewijzen. Zo kan men niet alleen het maximum aantal gelijktijdige bewerkingen, maar ook de prioriteit hiervan opgeven (Quality of Service). MacOS biedt vier niveaus van taakprioritering, gelijkmatig verspreid tussen 9 en 33 (zie tabel hieronder). Een hogere waarde wijst op een hogere prioriteit. Wanneer er geen QoS-niveau is opgegeven, wordt het vijfde en standaardniveau gebruikt. Hier beslist het os zelf hoe belangrijk een taak is.
QoS-niveau | Waarde | Bitmask | Prioriteit |
---|---|---|---|
Background | 9 | 001001 | Laagst |
Utility | 17 | 010001 | |
UserInitiated | 25 | 011001 | |
UserInteractive | 33 | 100001 | Hoogst |
Default | Onbekend | Bepaald door os |
De ontwikkelaar heeft een custom versie van zijn compressieprogramma Cormorant gebruikt om te onderzoeken wat voor invloed QoS heeft. Daaruit is gebleken dat bij een Intel Xeon W-octacore de prestaties gelijk blijven, ongeacht het QoS-niveau. Indien er meerdere bewerkingen worden gedraaid met een verschillende QoS, krijgt die met de hoogste waarde prioriteit.
Bij de Mac mini en MacBook Pro met de M1 soc heeft Oakley een andere vaststelling gemaakt. Alle opdrachten met een QoS van 9 (background) worden uitsluitend op de vier efficiënte Icestorm-cores uitgevoerd, zelfs wanneer deze volledig worden belast en de vier sterkere Firestorm-kernen beschikbaar zijn. Dit zorgt er wel voor dat het gelijktijdig uitvoeren van applicaties met een hogere prioriteit weinig invloed uitoefent op de werking van de zuinigere cores. Opdrachten met een hogere QoS dan 9 worden dan weer op alle acht cores uitgevoerd.
Achtergrondtaken maken weinig tot geen gebruik van de snellere M1-cores.
Volgens Oakley worden zowat alle taken van het besturingssysteem uitgevoerd op de efficiënte cores, met af en toe een uitschieter die ook gebruikmaakt van de krachtigere kernen. De meeste programma’s worden namelijk uitgevoerd met een QoS van minstens 17 en in veel gevallen 25 of 33. Het voordeel van deze implementatie is dat de interface van het os niet wordt getroffen door veeleisende bewerkingen, waardoor het systeem sneller aanvoelt.
Bron: Eclectic Light