De acordo com a PEC 230: Microbenchmark Suíte , existe um conjunto microbenchmark built-in de Java 12. A PEC explica que é basicamente JMH, mas sem a necessidade de depender explicitamente dele usando Maven / Gradle. No entanto, ele não especifica como ir sobre como acessar as classes / anotações que pertencem ao conjunto de realizar um benchmark.
Minhas perguntas são:
- Existe um módulo Java específico que eu preciso para exigir em meu
module-info.java
poder usar esta suite? - O pacote (s) são as classes / anotações de esta suite localizada em?
- Existem grandes diferenças entre esta suite e JMH?
Sua interpretação é incorreta. O PEC diz:
Adicionar um conjunto básico de microbenchmarks ao código-fonte do JDK , e torná-lo fácil para os desenvolvedores para executar microbenchmarks existentes e criar novos.
ou seja, isso não é necessariamente algo que o torna em uma distribuição JDK, apenas algo que é adicionado ao repositório de código fonte para torná-lo mais fácil de executar benchmarks no código JDK. Embora, para ser justo, o fato de que ele é listado como um dos JDK 12 'características' parece um pouco enganador.
O benchmark pode ser executado usando o sistema de compilação OpenJDK. Depois de ter clonado o código fonte OpenJDK de http://hg.openjdk.java.net/jdk/jdk/
(ou outro repositório que inclui o JEP), você pode executar benchmarks por exemplo, usando:
make test TEST="micro:java.lang.reflect"
Benchmarks estão localizados no \test\micro\
diretório. Veja também a documentação: http://hg.openjdk.java.net/jdk/jdk/raw-file/ddfb658c8ce3/doc/testing.html#microbenchmarks
Além disso, este requer que você especifique JMH e é dependências ao gerar uma configuração de compilação:
bash configure --with-jmh="/path/to/jmh/jars"
Frascos necessários são: commons-MATH3 , jmh-core , jmh-gerador de annprocess e Jopt-simples .