Ich profile einige Multi-Prozess-Nodejs-Code unter OSX ausgeführt.Was ist das ___mac_get_pid-Symbol in einem Knotenprofil?
Ich sehe:
[C++]:
ticks total nonlib name
23398 63.6% 63.8% ___mac_get_pid
Was ___mac_get_pid
ist? Sein Name ist sicherlich suggestiv, dass es ein Code ist, der "eine PID auf einem Mac bekommt", aber die Zeit scheint übertrieben.
Googeln hat nichts nützliches zur Verfügung gestellt.
@closevoter können Sie Ihre Bedenken zu dieser Frage angeben? Es ist eine legitime Frage, nach der ich suche und antworte, und ich würde sie gerne verbessern, wenn möglich. – Dancrumb
Dancrumb, Was ist dein Profiler und wie hast du angefangen? Gibt es einen Profiler, der Callstack aufzeichnen kann? Oder versuchen Sie, die Anwendung mehrmals im Debugger (gdb/lldb) zu stoppen und überprüfen Sie die Rückverfolgung, wenn Sie auf die '__mac_get_pid' klicken, um zu wissen, wer sie aufgerufen hat. Was ist Ihr Betriebssystem und was hat Ihre Anwendung? Gibt es Prozesslistenfunktionen? Welche Bibliotheken benutzen Sie? – osgx
Dancrumb, haben Sie andere Funktionen im Profil aufgeführt? Können Sie mehr Teile des Profils, sowohl C/C++ als auch Knotenfunktionen, posten? Einige von ihnen geben Hinweise auf ___mac_get_pid; möglicherweise ist es mit dem Warten auf einige Prozesse/Threads und/oder Verbindungen verbunden (oder es kann ein Timeout in der Nähe davon sein). Welche Bibliotheken/Muster verwenden Sie, um mehrere Prozesse miteinander zu verbinden und Nachrichten auszutauschen? Haben Sie ein sort nodejs Beispiel, um die Situation zu reproduzieren? Was sind Versionen von OSX/macOS und nodejs? – osgx