저는 jmh를 처음 접하고 스레드 뒤에 어떤 일이 일어나는지 이해하는 데 익숙합니다.JMH 상태 클래스 및 공유 된 비공유 상태
그래서 저는 읽기 시작하여 @State 주석을 붙잡고 비공유 상태를 공유했습니다.
나는이 예를 읽었습니다 : http://hg.openjdk.java.net/code-tools/jmh/file/ecd9e76155fe/jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_03_States.java 그리고 그것에 대해 몇 가지 질문이 있습니다.
첫 번째 질문은 무엇입니까? 주 수업의 정확한 역할은 무엇입니까? 매개 변수를 보유하고 있습니까? 두 가지 방법으로 키를 암호화하는 프로그램을 벤치마킹한다고 가정 해 봅니다. 특정 상태로 주석이 달린 상태 클래스에서 키 (String 객체)를 유지해야합니까? 또는 String 객체를 벤치 마크 클래스에 보관할 수 있습니까? 이것에 대한 설명은 훌륭합니다.
위의 예제에서 공유되지 않은 상태 클래스 성능이 공유 된 것보다 훨씬 좋은 이유는 무엇입니까? 다중 스레드 상태는 어떻게 변경합니까?
나는이 물건에 익숙하지 않아서 jmh를위한 "내가 5 인처럼 나에게 설명해"라는 옵션을 찾을 수 없었기 때문에 나는 정말로 어둡게 느껴졌습니다.
벤치마킹 클래스에 변수를 저장하고 @Setup으로 변수를 초기화하거나 변수를 유지하고 초기화하는 내부 클래스를 만드는 것이 중요합니다. 아니면 이렇게하는 것이 2 가지 방법 일뿐입니다. – TalOhana
첫 번째는 후자의 편의입니다. –