2016-09-13 2 views
2

Das könnte eine wirklich dumme Frage sein, aber ich finde nicht wirklich Antworten online (Nicht, dass ich zumindest verstehen kann), ich fand nur einige Benchmark-Ergebnisse like these mit bestimmten Benchmark-Software.Multithreading in Java: Zeigen verschiedene Betriebssysteme unterschiedliche Leistung?

Lassen Sie mich ein wenig Kontext geben: Ich entwickle gerade ein Java Multithread-Programm auf einem Ubuntu-Rechner, ich habe einen Windows 10 Rechner im Office zu Testzwecken, und das Programm soll in einem Windows 7 Rechner laufen verbunden mit einer Produktionslinie.

Ich bin nicht in Ubuntu Leistung in diesem Fall interessiert, da der Kunde es auf einer Windows-Maschine verwenden möchte. Wenn ich die Software auf dem Windows 10-Rechner teste, fühlt es sich einfach so an, als würde es schneller laufen als auf dem Windows 7-PC, ich muss sagen, dass ich keinen uneingeschränkten Zugriff auf den Windows 7-Rechner habe, also kann ich nicht die Zeit, um es zu testen, auch, soweit ich weiß, die Maschinen haben die exakt gleichen Hardware-Komponenten und führen die gleiche Java-Version (Immer das letzte Update von Java 8).

Macht das Sinn? Kann die Aktualisierung von Windows 7 auf Windows 10 dazu führen, dass ein Java-Programm besser läuft? (durch Optimierung von Threads vielleicht?). Diese Frage basiert auf reiner Spekulation und keinerlei tatsächlichen Daten, daher tut es mir leid, wenn es keinen Sinn ergibt.

Vielen Dank für Ihre Geduld.

+0

Sind Windows 10 und Windows 7 Maschinen gleiche Hardware? –

+4

Wenn es um Leistung geht, messen. Geh nicht nach Gefühlen. – Codo

+2

Sorry, aber das ist ** Weg ** zu breit. Und weißt du, normalerweise bin ich nicht schüchtern, Antworten auf solche Fragen zu geben; aber gut: in Ihrem Fall können die Antworten ja, nein, vielleicht, sicher, nie sein. Die Sache ist: niemand kann das sagen. Das einzige, was wirklich Sinn macht: ** measure **. Erstellen Sie ein genau definiertes Testsetup und führen Sie wiederholte Tests durch. und sieh, was du bekommst. Alles andere ist reine Spekulation und ohne wirklichen Wert. – GhostCat

Antwort

1

Ja, die Reihenfolge der Thread-Ausführung wird nicht von der JVM garantiert, die durch die anderen Prozesse beeinflusst werden kann, die von einem Betriebssystem verarbeitet werden.

+0

Es tut mir leid, aber ich sehe nicht, wie dies die Frage angeht. Was hat es mit der Reihenfolge der Ausführung zu tun? – Gray

+0

Ich denke eigentlich, dies ist die beste Antwort, einfach und direkt, ich wollte nur wissen, ob ein anderes Betriebssystem die Leistung in Multithread-Java-Anwendungen/-Programmen beeinflussen kann, und er hat diese Frage beantwortet. Ich habe nicht gefragt, ob meine Software speziell betroffen war, ich habe nicht einmal Code oder tatsächliche Daten zur Verfügung gestellt (weil ich nicht erlaubt bin), ich wollte nur wissen, ob es möglich ist. – Tuzane

1

YES OS hat Auswirkungen auf die Thread-Performance, da die Java-Threads auf den Threads der JVM ausgeführt werden und JVM tatsächlich Threads vom Betriebssystem zugewiesen wird, auf denen es ausgeführt wird. Da JVM nicht direkt mit dem Thread des Prozessors interagieren kann. Die Leistung des Multithread-Programms wird also von dem zugrunde liegenden Betriebssystem beeinflusst, das Threads der jeweiligen JVM zuordnet.

+0

Java-Threads sind die Threads der JVM. Sie werden mit den Thread-Primitiven des Betriebssystems ausgeführt. Außerdem hat der Prozessor keine Threads. Threads werden auf Prozessoren ausgeführt. – Gray

Verwandte Themen