Node.js Electron-Anwendungen für Single-Core-Windows 7-Maschinen sind langsam auf Datei-E / A

9

Ich führe eine Elektronenanwendung auf einer Single-Core-Windows-7-Maschine durch. Es scheint, wenn ich fast jedes Datei-I / O mit der fs-Bibliothek mache, erreicht die CPU ~ 100% für den Elektronenprozess und es kann bis zu einer Minute dauern, um die Datei-I / O durchzuführen.

Eine Funktion, die besonders langsam ist, ist fs.readFileAsync (). Die Datei, die ich lese, ist sehr klein, aber es scheint sehr lange zu dauern.

Ich habe auch diesen genauen Code unter Windows 7 mit Dual-Core, Windows 8.1, Windows 10 und Ubuntu 15.10 ausgeführt, und keines dieser Betriebssysteme läuft auf dieses Problem, es scheint nur einkernige Windows 7-Rechner zu sein. (Also ich bin fast sicher, dass es mit dem geschriebenen Code kein Problem gibt).

Weiß jemand, warum das passieren könnte? Gibt es eine Lösung für dieses Problem? Es ist seltsam, dass die Anzahl der Kerne die Leistung einer Elektronenanwendung beeinflusst. Auch dies ist nur Windows 7, so dass Single-Core-Windows 8.1 oder Windows 10-Rechner dieses Verhalten nicht zeigen.

    
Aaron Harrington 22.09.2016, 21:13
quelle

1 Antwort

0

Electron geht im Hauptprozess nicht so gut damit um. Elektron ist auch nicht multi-threaded.

Obwohl Sie einen einzelnen Kern ausführen, würde ich empfehlen, den "child_process" von Node zu verwenden, um Datei-Lese- / Schreibvorgänge (oder irgendeine andere schwere Aufgabe) außerhalb des Hauptprozesses des Elektrons auszuführen. Dies sollte alle seltsamen Schluckauf oder Stottern in der App lösen und im Allgemeinen Dinge beschleunigen.

Denken Sie auch daran, dass das Elektron auf Chrom basiert und der Knoten auf v8 basiert, dem Kern von Chrom. Diese Kombination macht das Elektron von Natur aus sehr ressourcenintensiv und die Leistung ist generell der Nachteil von Elektronen. Die Oberseite ist offensichtlich in der Lage, plattformübergreifende Apps schnell zu erstellen. Eine 1-Kern-Maschine insgesamt ist wahrscheinlich nicht gut geeignet, um sogar 1 Elektronen-App zu betreiben. Wir hatten keine 1 Kernmaschinen in was? 10 Jahre?

    
thomasmeadows 27.07.2017 02:35
quelle