Frage

Als ich die Anwendung erstellt habe, die auf Berechnungen hart ist -> eine Menge Arbeit zu tun, nicht sehr komplexe Berechnungen -> es dauert zu lange, es zu trainieren und das Verfahren ist nur bei 45% der CPU. Kann ich es irgendwie maximieren ?: zu 90% gehen?

War es hilfreich?

Lösung

Wenn Sie eine Dual-Core-Maschine haben (was ich vermute, Sie tun), die Sie könnten in einem einzigen Thread zu bekommen hoffen wäre 50% CPU-Auslastung.

Um 90% CPU-Auslastung zu erhalten, werden Sie wahrscheinlich benötigen, um Ihre Berechnungen fädeln. Dies kann sehr einfach sein, oder nur sehr schwer, je nach Art des Algorithmus Sie einfädeln wollen.

Wenn Sie brechen können Ihre Arbeits in mehrere Gruppen gesetzt, würde ich empfehlen, die Thread oder möglicherweise sogar die Task Parallel Bibliothek , je nach Ihr Timing für die Freigabe.

Andere Tipps

Mehr als wahrscheinlich haben Sie einen Dual-Core-CPU, und wenn Ihre Anwendung Single-Threaded ist, ist die maximale CPU es benutzen werden 50% (alle von einem Kern). Um eine bessere Nutzung zu bekommen, müssen Sie mehrere Threads verwenden, aber das bedeutet auch eine Möglichkeit, herauszufinden, Ihre Berechnungen in Stücke zu brechen, so dass sie von mehr als einem Kern bearbeitet werden können.

Überprüfen Sie dies:

  1. Haben Sie von der Festplatte lesen, während der Berechnung? Wenn ja, versucht, Daten im Speicher vor Berechnungen zu lesen.
  2. Sie die Ergebnisse auf die Festplatte oder Konsole schreiben, während die Berechnung? Wenn ja, versuchen schriftlich zu verschieben, bis die Berechnung beendet ist und führen Sie dann zu schreiben.
  3. Wenn Sie Multi-Core-Prozessor haben, versuchen Sie Multithreaded-Algorithmus, wenn möglich zu erstellen.

Wenn Sie nur eine einfache Schleife haben die Berechnungen zu tun, dann ist es sehr wahrscheinlich, dass Ihr Computer verfügt über zwei Kerne / Prozessoren. Eine Single-Threaded-Anwendung bestenfalls 50% des CPU verwendet werden.

Sie müssen mehrere Threads die gesamte CPU auf einer Multi-Core-Maschine verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top