Was wir gemessen haben und wie
Alle drei Apps liefen auf demselben Mac: einem Apple M5 Max mit 36 GiB Speicher und macOS 27.2. Jede war auf 8 CPUs und 12 GiB eingestellt, wurde mit ihrem eigenen Befehl frisch gestartet und lief allein; die anderen waren beendet, was wir überprüften. Die Leerlaufwerte stammen aus einem 60-Sekunden-Fenster nach 45 Sekunden Wartezeit. Gezählt wurden sämtliche Prozesse des Produkts: die App, ihre Hilfsprogramme und die Engine samt Linux-System. Die Containerwerte sind Mediane aus fünf Messungen nach einem Aufwärmlauf. Unterschiede innerhalb von 10 % gelten als gleichauf.
Oxcart 0.1.2 wurde am 2026-10-10 mit dem mitgelieferten docker-Client 29.9 gemessen. OrbStack 2.2.3 und Docker Desktop 4.94.0 wurden früher am selben Tag auf demselben Mac mit demselben Messaufbau und docker 29.4 gemessen. Jedes Produkt nutzt seinen eigenen Linux-Kernel. Das ist ein Durchlauf pro Produkt auf einem Rechner, keine Studie; die Methode ist für alle gleich.
Speicher im Leerlauf ohne Container
| App | Speicher im Leerlauf |
|---|---|
| Oxcart 0.1.2 | 776 MiB |
| OrbStack 2.2.3 | 792 MiB |
| Docker Desktop 4.94.0 | 1745 MiB |
Diesen Speicher benötigt eine Container-App allein dafür, einsatzbereit zu sein: zwischen Arbeitssitzungen, während Besprechungen oder auf einem Laptop, auf dem sie den ganzen Tag geöffnet ist. Oxcart und OrbStack liegen hier gleichauf; Docker Desktop belegt mehr als das Doppelte.
Was die Containerüberwachung kostet
Dashboards, Terminal-Monitore und Coding-Agenten fragen Containerstatistiken ständig ab. Der Aufwand dafür ist deshalb wichtiger, als es zunächst scheint.
| Messgröße | Oxcart | OrbStack | Docker Desktop |
|---|---|---|---|
CPU-Verbrauch eines docker stats-Clients im Streamingmodus | 1,29 % | 3,81 % | 5,45 % |
docker stats --no-stream | 1038 ms | 2050 ms | 2054 ms |
CPU-Verbrauch als Anteil eines Kerns. Oxcart 0.1.2 wurde am 2026-10-10 mit dem mitgelieferten docker-Client 29.9 gemessen; OrbStack 2.2.3 und Docker Desktop 4.94.0 früher am selben Tag auf demselben Mac mit demselben Messaufbau und docker 29.4.
Oxcarts eigener Menüleisteneintrag benötigt bei 20 laufenden Containern 0,0004 % eines CPU-Kerns und 0,033 Aufweckvorgänge pro Sekunde. Diese Zahl betrifft nur die App, nicht die Engine.
Unter Last: gleichauf
Sobald Container echte Arbeit erledigen, nähern sich die Apps einander an, weil die eigentliche Arbeit überwiegt. Zwei Zeilen aus demselben Messlauf:
| Messgröße | Oxcart | OrbStack | Docker Desktop |
|---|---|---|---|
| Mac-CPU pro CPU-Sekunde im Container | 1,10× | 1,11× | 1,09× |
| Mac-Speicher pro Container, der auf 256 MiB zugreift | 235 MiB | 266 MiB | 236 MiB |
In der Praxis: Ein CPU-lastiger Build oder Test beansprucht bei allen drei Apps etwa gleich viel Mac-CPU. Ein Container, der 256 MiB nutzt, benötigt auf deinem Mac ungefähr diese Menge. Unterschiede gibt es bei allem rund um die Arbeit: wie lange jeder Aufruf von docker run, stop und das Aufräumen dauert. Hier liegt Oxcart vorn (gegen Docker Desktop, gegen OrbStack).
Nach der Arbeit: Speicher zurück an macOS
Seit Oxcart 0.1.3 startet Oxcart seine Linux-Seite etwa 30 s nach dem Stopp deines letzten Containers neu und gibt den Speicher an macOS zurück: 570 MiB statt 3319 MiB, 32 s nach dem Stopp des letzten Containers (ein zweiter Lauf: von 3352 auf 579 MiB). Das geschieht nur, wenn kein Container läuft. Der Neustart erfolgt im Hintergrund; ein währenddessen eintreffender Docker-Befehl wartet einfach darauf.
Gemessen mit Oxcart 0.1.3.
Den Speicher einer Container-App auf deinem Mac messen
- Mit einem ruhigen Mac beginnen. Beende andere Container-Apps, stoppe deine Container und warte nach dem App-Start eine Minute, damit die Startarbeiten abgeschlossen sind.
- Alle Prozesse der App finden. Öffne in der Aktivitätsanzeige den Tab „Speicher“ und suche nach dem Namen der App. Der Prozess für die Linux-Seite ist meist der größte. Im Terminal listet
ps -axo pid,rss,comm | grep -i <app>die Prozesse auf. - Den von macOS zugerechneten Speicher ablesen. Nutze die Spalte „Speicher“ in der Aktivitätsanzeige oder
footprint <pid>für jeden Prozess und addiere die Werte. Die residente Größe (RSS) allein kann gemeinsamen und komprimierten Speicher zu hoch oder zu niedrig ansetzen. - Mit laufender Arbeitslast messen. Starte deinen üblichen Compose-Stack, nutze ihn einige Minuten und lies dieselben Werte erneut ab.
docker stats --no-streamzeigt, was jeder Container auf der Linux-Seite nutzt. - Nach dem Stopp messen. Stoppe alles und lies die Werte eine Minute später noch einmal ab. Das ist der Speicher, den die App zwischen Arbeitssitzungen im Leerlauf behält.
Wichtige Einstellungen
- Grenzen der App. Jede App begrenzt CPU und Speicher ihrer Linux-Seite. In Oxcart: Settings › Resources oder
oxcart config set cpus=6undoxcart config get; die Werte gelten ab dem nächsten Start. Ein Limit weit über dem Bedarf deines Stacks bringt keinen Vorteil. - Grenzen pro Container.
--memory,--cpusund--pids-limitbeidocker runodermem_limit,cpusundpids_limitin Compose verhindern, dass ein außer Kontrolle geratener Dienst sämtliche Ressourcen belegt. - Stoppen, was du nicht nutzt.
docker compose stopfür Stacks, zu denen du zurückkehrst;docker compose downfür die anderen. Bei Oxcart ermöglicht der Stopp des letzten Containers auch die Rückgabe des Speichers an macOS. - Sparsam überwachen. Bevorzuge in Skripten
docker stats --no-streamund gib Coding-Agenten ein Werkzeug für Zusammenfassungen statt roher Statistikdaten (Docker für KI-Coding-Agenten).
Fragen
Wie viel Speicher nutzt Docker auf einem Mac?
Das hängt von der App und der Arbeit deiner Container ab. Ohne laufende Container haben wir auf einem Mac mit Apple-Chip mit einer Einstellung von 12 GiB für Oxcart 776 MiB, für OrbStack 792 MiB und für Docker Desktop 1745 MiB gemessen. Gezählt wurden sämtliche Prozesse jedes Produkts. Sobald Container laufen, richtet sich der Speicherbedarf nach ihren Arbeitslasten.
Warum nutzt Docker Desktop so viel Speicher?
Jede Container-App auf dem Mac betreibt ein Linux-System. Der Speicher, auf den dessen Arbeitslasten zugreifen, erscheint auf dem Mac als ein großer Prozess. Docker Desktop hatte in unserer Messung auch den höchsten Leerlaufwert der drei: 1745 MiB ohne Container. Senke das Speicherlimit in den Einstellungen, stoppe nicht benötigte Container und vergleiche eine Alternative wie Oxcart, das auf demselben Mac im Leerlauf 776 MiB belegte.
Gibt Oxcart Speicher an macOS zurück?
Ja, sobald nichts mehr läuft. Seit Oxcart 0.1.3 startet Oxcart seine Linux-Seite etwa 30 s nach dem Stopp deines letzten Containers neu und gibt den Speicher an macOS zurück: In einer Messung mit einer Vorabversion sank er von 3319 MiB auf 570 MiB, 32 s nach dem Stopp des letzten Containers. Das geschieht nur, wenn kein Container läuft.
Wie begrenze ich Speicher und CPU eines Containers?
Pro Container: docker run --memory 512m --cpus 1.5 … oder mem_limit und cpus in einem Compose-Dienst. Oxcart übernimmt Änderungen an Speicher-, CPU- und Prozesszahlgrenzen mit docker update. Sie bleiben auch erhalten, wenn der Container durch einen Neustart neu erstellt wird.
Wie lege ich fest, wie viele CPUs und wie viel Speicher Oxcart nutzen darf?
Unter Settings › Resources oder im Terminal mit oxcart config set cpus=4 und oxcart config get, um die wirksamen Werte und die Grenzen deines Macs zu sehen. Neue Werte gelten ab dem nächsten Start.
Verlangsamt docker stats meinen Mac?
Ein laufender docker stats-Stream benötigt bei jeder App CPU. Wir haben für Oxcart 1,3 % eines Kerns gemessen, für OrbStack 3,8 % und für Docker Desktop 5,5 %; Oxcart hatte den niedrigsten Wert. Ein einmaliges docker stats --no-stream für 20 Container dauerte bei Oxcart 1,0 s, etwa halb so lange wie bei den anderen beiden.
Quellen und Methode
- Oxcart 0.1.2, OrbStack 2.2.3 und Docker Desktop 4.94.0, gemessen am 2026-10-10 auf demselben Mac (Apple M5 Max, 36 GiB, macOS 27.2), jeweils 8 CPUs und 12 GiB, jeweils nur ein Produkt gleichzeitig.
- Speicherrückgabe nach dem Stopp des letzten Containers: Oxcart 0.1.3.
- Kosten des Menüleisteneintrags: gemessen mit Oxcart am 2026-10-09.