Unlocking Python's Cores: Hardware Usage and Energy Implications of Removing the GIL

Deze studie toont aan dat de experimentele GIL-vrije build van Python 3.14.2 de uitvoeringstijd en energie-efficiëntie voor parallelle werklasten aanzienlijk verbetert, maar voor sequentiële taken of gedeelde data-structuren juist leidt tot hoger energieverbruik en meer geheugengebruik.

José Daniel Montoya Salazar

Gepubliceerd 2026-03-06
📖 5 min leestijd🧠 Diepgaand

Each language version is independently generated for its own context, not a direct translation.

De GIL-vergrendeling: Een simpele uitleg van Python's nieuwe "meerdere handen" aanpak

Stel je voor dat Python een enorm drukke fabriek is waar computerspellen, data-analyses en kunstmatige intelligentie worden gebouwd. In deze fabriek werkt er altijd maar één werknemer tegelijk aan de taak, zelfs als er twaalf andere werknemers (kernen van de processor) klaarstaan om te helpen.

Die ene werknemer is de GIL (Global Interpreter Lock). Het is een soort "alleen-recht" dat zorgt dat er nooit twee Python-instructies tegelijk worden uitgevoerd. Dit is veilig, maar het is alsof je een auto met twaalf motoren hebt, maar er maar één sleutel is die maar één motor kan starten. De andere elf motoren staan stil, terwijl de auto toch energie verbruikt.

Sinds kort (Python 3.13 en 3.14) is er een experimentele nieuwe versie van deze fabriek: de "No-GIL" versie. Hier mag iedereen tegelijk werken. Maar de vraag is: bespaart dit energie en werkt het sneller?

Dit onderzoek kijkt precies hiernaar. Hier is wat ze ontdekten, vertaald naar alledaagse situaties:

1. De drie soorten fabrieken (Werklasten)

De onderzoekers testten drie verschillende soorten taken om te zien hoe de nieuwe versie presteert:

A. De "Buitenlandse Experts" (NumPy-taken)

  • De situatie: Stel je voor dat Python de manager is, maar de zware, saaie werk (zoals het berekenen van enorme lijsten met getallen) wordt uitbesteed aan speciale, super-snelle robots (C-code libraries zoals NumPy).
  • Het resultaat: Het maakt geen verschil of je de GIL hebt of niet. De robots werken al zo snel dat de Python-manager nauwelijks tijd verliest.
  • Energie: Geen winst, geen verlies. De robots doen het werk anyway.
  • Conclusie: Als je vooral NumPy gebruikt, hoef je je geen zorgen te maken.

B. De "Eenzame Werknemer" (Sequentiële taken)

  • De situatie: Dit is werk dat niet verdeeld kan worden. Denk aan het sorteren van een lange lijst van A tot Z, of het berekenen van een wiskundig probleem dat stap voor stap moet.
  • Het resultaat: De nieuwe versie werkt hier langzamer (tot 43% trager). Waarom? Omdat de nieuwe versie extra veiligheidsmaatregelen moet nemen (zoals extra vergrendelingen per object) die tijd kosten, terwijl er toch maar één persoon aan het werk is.
  • Energie: Omdat het langer duurt, verbruikt het meer stroom. Het is alsof je een auto langzamer laat rijden, maar de motor toch blijft draaien.
  • Conclusie: Voor simpele, één-op-één taken is de nieuwe versie slechter. Je betaalt een "snelheidstaks" voor iets dat je niet nodig hebt.

C. De "Meerdere Werknemers" (Parallelle taken)

  • De situatie: Dit is het ideale scenario. Stel je hebt 1000 losse poststukken die je moet sorteren. Je kunt deze verdelen over 12 werknemers.
  • Het resultaat:
    • Als de werknemers niet met elkaar hoeven te praten: (Elk werkt aan zijn eigen stapel) -> Gigantische winst! De taak is tot 4 keer sneller klaar. Omdat het zo snel klaar is, verbruikt het minder stroom, ondanks dat er meer motoren draaien.
    • Als de werknemers constant met elkaar moeten praten: (Ze moeten allemaal aan hetzelfde document werken en het steeds aanpassen) -> Ramp! Ze gaan elkaar blokkeren, ruzie maken over wie er mag schrijven, en vertragen elkaar. De nieuwe versie is hier zelfs 12 keer langzamer en verbruikt veel meer stroom dan de oude versie.
  • Conclusie: Alleen werken als je taken goed te verdelen zijn en de werknemers elkaar niet in de weg zitten.

2. De "Stroomrekening" (Energie)

Een van de belangrijkste ontdekkingen is dit: Snelheid is energie.

In de oude wereld dachten we misschien: "Als ik meer kernen gebruik, verbruikt mijn computer meer stroom per seconde." Dat klopt, maar de onderzoekers ontdekken dat de totale energiebesparing vooral komt door het kortere tijdsbestek.

  • Analogie: Stel je voor dat je een badkamer moet douchen.
    • Met de GIL (oude versie): Je wast langzaam, maar gebruikt weinig water per minuut. Het duurt 20 minuten.
    • Zonder GIL (nieuwe versie, bij goede taken): Je wast razendsnel, gebruikt veel water per minuut, maar het duurt maar 5 minuten.
    • Resultaat: De snelle versie verbruikt in totaal veel minder water (energie) omdat je de kraan zo snel mogelijk dichtdraait.

De regel: Als je Python-programma sneller draait, verbruikt het automatisch minder energie. Er is geen magische knop om energie te besparen; je moet gewoon sneller werken.

3. De "Pakketruimte" (Geheugen)

Er is een nadeel aan de nieuwe versie: meer ruimtegebruik.
De nieuwe versie heeft extra "veiligheidsgordels" en "vergrendelingen" nodig voor elke werknemer.

  • Virtueel geheugen: De nieuwe versie vraagt om veel meer ruimte op je harde schijf (virtueel geheugen), alsof je een gigantisch magazijn huurt dat grotendeels leeg staat.
  • Fysiek geheugen (RAM): Dit neemt ook iets toe, maar niet zo gek veel, tenzij de werknemers constant ruzie maken (lock contention). Dan wordt het geheugenverbruik wel erg hoog.

Samenvatting: Moet je overstappen?

De conclusie van het onderzoek is: Nee, niet voor iedereen. De nieuwe "No-GIL" versie is geen wondermiddel voor elke Python-gebruiker.

  • Jij moet overstappen als: Je werkt met zware, rekenkrachtige taken die je kunt verdelen over meerdere kernen (bijvoorbeeld simuleren van natuurverschijnselen, grote data-analyses zonder NumPy, of AI-trainingen die puur Python zijn). Dan bespaar je enorm veel tijd en energie.
  • Jij moet blijven bij de oude versie als: Je programma's vooral uit één lange, opeenvolgende reeks instructies bestaan, of als veel delen van je code constant aan dezelfde bestanden of lijsten werken. Dan wordt je computer juist trager en verbruikt hij meer stroom.

Het grote inzicht:
Python's nieuwe "meerdere handen" aanpak is een krachtig gereedschap, maar het is een specialist. Het is niet voor iedereen. Als je programmeur bent, moet je eerst kijken of je werk zich leent voor parallel werken voordat je de GIL uitschakelt. Anders betaal je de prijs voor een snelheid die je nooit gaat gebruiken.