2016-09-13 2 views
2

이것은 정말 어리석은 질문 일지 모르지만 나는 온라인에서 답을 찾지 못한다. (나는 적어도 이해할 수있는 것은 아니지만) 특정 벤치 마크 소프트웨어가있는 벤치 마크 결과가 like these 인 것을 발견했다.Java의 멀티 스레딩 : 다른 운영 체제가 다른 성능을 제공합니까?

약간의 컨텍스트를 제공하겠습니다. 현재 우분투 컴퓨터에서 Java 다중 스레드 프로그램을 개발 중이며 테스트 목적으로 Office에 Windows 10 컴퓨터가 있고 프로그램이 Windows 7 컴퓨터에서 실행되도록되어 있습니다. 생산 라인에 연결됩니다.

이 경우 우분투 성능에는 관심이 없습니다. 고객이 Windows 컴퓨터에서 사용하기를 원하기 때문입니다. Windows 10 컴퓨터에서 소프트웨어를 테스트 할 때 Windows 7 PC보다 빠르게 실행되는 것처럼 느껴지므로 Windows 7 컴퓨터에 대한 전체 액세스 권한이 없어서 수행 할 수 없습니다. 그것을 테스트하는 시간, 또한, 내가 아는 한, 기계는 똑같은 하드웨어 구성 요소를 가지며 동일한 Java 버전 (항상 Java 8의 최종 업데이트)을 실행합니다.

의미가 있습니까? Windows 7에서 Windows 10으로 Windows를 업데이트하면 Java 프로그램을 더 잘 실행할 수 있습니까? (스레드를 최적화하면?). 이 질문은 순수한 추측과 전혀 실제 데이터를 기반으로하므로 이해가되지 않으면 유감입니다.

양해 해 주셔서 감사합니다.

+0

Windows 10과 Windows 7 컴퓨터의 하드웨어가 동일합니까? –

+4

성능면에서 측정하십시오. 감정에 빠지지 마십시오. – Codo

+2

죄송합니다.하지만 ** 길 ** 너무 광범위합니다. 그리고 알다시피, 일반적으로 저는 그러한 질문에 대한 대답을 부끄러워하지 않습니다. 그러나 당신의 경우에, 대답은 예, 아니오, 어쩌면 확실 할 수 있습니다. 것은 : 아무도 그것을 말할 수 있습니다. 실제로 의미가있는 유일한 것 : ** 측정 **. 잘 정의 된 테스트 설정을 작성하고 반복 테스트를 실행하십시오. 그리고 당신이 얻는 것을보십시오. 다른 것은 순수한 추측이며 실제 가치가 없습니다. – GhostCat

답변

1

예. 스레드 실행 순서는 OS에서 처리하는 다른 프로세스의 영향을받을 수있는 JVM에서 보장하지 않습니다.

+0

죄송합니다. 그러나 이것이 어떻게 문제를 해결하는지 모르겠습니다. 실행 명령과 무엇이 관련이 있습니까? – Gray

+0

실제로 이것이 최상의 대답이라고 생각합니다. 간단하고 직접적이었습니다. 다른 OS가 다중 스레드 Java 응용 프로그램/프로그램에서 성능에 영향을 줄 수 있는지 알고 싶었습니다. 내 소프트웨어가 특별히 영향을 받았는지 묻지 않았고, 코드 나 실제 데이터를 제공하지도 않았습니다 (허용되지 않았기 때문에), 가능한지 알고 싶었습니다. – Tuzane

1

예 OS는 Java 스레드가 JVM의 스레드에서 실행되고 JVM이 실제로 실행되는 OS의 스레드를 할당받을 때 스레드 성능에 영향을 미칩니다. JVM은 프로세서의 스레드와 직접 상호 작용할 수 없기 때문입니다. 따라서 다중 스레드 프로그램의 성능은 스레드를 해당 JVM에 할당하는 기본 OS에 의해 영향을받습니다.

+0

Java 스레드는 JVM의 스레드입니다. 이들은 OS의 스레드 기본을 사용하여 실행됩니다. 또한 프로세서에는 스레드가 없습니다. 스레드는 프로세서에서 실행됩니다. – Gray

관련 문제