Ich arbeite gerade an einem kleinen Nebenprojekt, dem ich einige Statistiken zur CPU-Auslastung/Speicherauslastung/Geöffnete FDs/etc. hinzufügen möchte, aber pro Prozesslevel.Berechnung pro Prozessspeicher unter MacOS
Ich habe die CPU-Auslastung richtig funktioniert, aber das Problem, mit dem ich bin, ist mit dem Speicher. Ich kann keine APIs zum Abrufen oder Berechnen der Speicherbelegung finden, ähnlich wie es der Aktivitätsmonitor im Abschnitt Prozessinformationen tut.
Welche APIs sind verfügbar, um die Speicherbelegungen "Real/Virtual/Shared/Private" berechnen zu können? Ich habe die host_statistics() verwendet, aber das gibt mir nur die grundlegenden VM-Informationen von dem, was ich sagen kann. Ich habe auch in task_info() nachgeschaut, aber das scheint auch nicht zu haben, dass der Speicher kaputt geht, nach dem ich suche.
Ich fing an, einen Blick darauf zu werfen, aber es ist mir nicht klar, wie sie die privaten/geteilten Speicherwerte eines Prozesses berechnen. – slagathor
Scratch das. Den Codeabschnitt gefunden, der die privaten/freigegebenen Berechnungen behandelt. Es stellt sich heraus, dass Sie Ihre virtuellen Speicherbereiche mit mach_vm_region() durchlaufen müssen. – slagathor
Das klingt richtig. Ich denke, es ist nicht 100% zuverlässig, da der Prozess seine Regionen während des Laufens verändern kann, aber für die Zwecke der Display-Statistiken sollte es ausreichen. (Tut mir leid, ich gebe keine vollständige Antwort BTW, aber ich weiß die Details nicht auswendig und habe nicht wirklich die Zeit, es selbst zu recherchieren, also habe ich gedacht, dass du in die Richtung zeigst, wo ich anfangen würde besser als nichts!) – pmdj