Ich führe ein Biologie-Computerprogramm NUPACK mit derselben Eingabe auf zwei leicht unterschiedlichen Macbooks Pro aus:
- Der erste ist 10,14, 13 Zoll, 2,5 GHz Intel Core i7, 16 GB, 2133 MHz LPDDR3. Das Programm verwendet 99,9% CPU, 1 Thread und 7 MB RAM, läuft in 26 Sekunden. 8 MB realer Speicher, 6 MB privater Speicher
- Der zweite ist 10.14.1, 2018 15-Zoll mit Magic Bar, 2,6 GHz Intel Core i7, 32 GB RAM, 2400 MHz DDR4. Dieser konnte nicht einmal das Skript in 20 Minuten fertigstellen, daher ist es mindestens 60x langsamer. Das Programm verwendet 1 Thread, 99% CPU, 2 MB realen Speicher, 800 KB privaten Speicher
Das Programm ist CMake-kompiliert (cmake wird über Homebrew installiert). Das eine andere ist, dass der Benutzer auf dem zweiten Computer zuerst versucht hat, CMake aus der vorkompilierten Binärdatei zu installieren, aber dann habe ich über installiert homebrew
. Ich habe neu installiert homebrew
und CMake
und kompilierte das Programm neu.
Auf beiden Rechnern läuft das Programm ohne oder mit schlechten Parametern (löst Fehler- / Hilfeinformationen aus), es handelt sich also wahrscheinlich nicht um einen Kompilierungsfehler. Der Installationsprozess war identisch und es wurden keine speziellen Flags / Modifikatoren verwendet.
Auf beiden Systemen befindet sich die Eingabedatei im lokalen Dateisystem (SSD) im Ordner Downloads. Beide haben ein APFS-Dateisystem (verschlüsselt). Ich starte Programme mit root (aber nicht mit root) sudo ...
)
Was kann ich tun, um das Problem weiter zu beheben? Beide Laptops laufen in einer sehr ähnlichen Softwareumgebung (von der Universität erworbene Laptops mit Sophos Anti-Virus), und ich kann kaum Unterschiede zwischen beiden feststellen.
Das Programm befindet sich nicht auf beiden Computern in der Sandbox
Aktualisieren mit Daten aus dem Probenahmeprozess:
Erfolg und Fehlgeschlagene Ausführung
Eine Sache, die wichtig erscheint, sind diese Fehler:
+ 51 fgets (in libsystem_c.dylib) + 42 [0x7fff631ed7ec]
+ ! 27 flockfile (in libsystem_c.dylib) + 31 [0x7fff631ece6c]
+ ! : 14 _pthread_mutex_lock_init_slow (in libsystem_pthread.dylib) + 37 [0x7fff633561f9]
+ ! : | 14 _pthread_mutex_check_init_slow (in libsystem_pthread.dylib) + 21,4,... [0x7fff6335623d,0x7fff6335622c,...]
+ ! : 7 pthread_mutex_lock (in libsystem_pthread.dylib) + 0,120 [0x7fff6335614b,0x7fff633561c3]
+ ! : 6 _pthread_mutex_lock_init_slow (in libsystem_pthread.dylib) + 42,6,... [0x7fff633561fe,0x7fff633561da,...]
+ ! 7 flockfile (in libsystem_c.dylib) + 36 [0x7fff631ece71]
+ ! : 7 __error (in libsystem_kernel.dylib) + 0,23 [0x7fff6329f55d,0x7fff6329f574]
+ ! 7 flockfile (in libsystem_c.dylib) + 10,42,... [0x7fff631ece57,0x7fff631ece77,...]
+ ! 5 DYLD-STUB$$__error (in libsystem_c.dylib) + 0 [0x7fff63233218]
+ ! 5 flockfile (in libsystem_c.dylib) + 15 [0x7fff631ece5c]
+ ! 5 __error (in libsystem_kernel.dylib) + 0,23 [0x7fff6329f55d,0x7fff6329f574]
Was bedeutet dieser Fehler? Kann ich damit debuggen?
+ ! 3 funlockfile (in libsystem_c.dylib) + 15 [0x7fff631ecec4]
+ ! 3 __error (in libsystem_kernel.dylib) + 23,0 [0x7fff6329f574,0x7fff6329f55d]
Update 2
Interessante Beobachtung: Auf der zweiten Maschine (FAIL) kann ich das Programm nicht zum Laufen bringen sudo program file_name
. Es startet niemals den Programmablauf!
Sample Process
Bericht. Vergleichen Sie die Ergebnisse.