Je pense qu'il y a des cas où vous souhaitez prendre un micro-benchmark tout en modifiant l'argument VM. Pour les arguments qui affectent le compilateur JIT, il suffit d'exécuter le programme et de mesurer le temps Je ne peux pas bien mesurer l'effet. En effet, le compilateur JIT s'exécute et optimise le code au moment déterminé par la machine virtuelle pendant l'exécution du programme, il n'est donc pas possible de mesurer l'efficacité de la modification de l'argument de la machine virtuelle.
Dans de tels cas, il est pratique d'utiliser l'outil d'analyse comparative JMH. Comment utiliser JMH est expliqué dans cet article, donc à partir de maintenant, le benchmark dans JMH J'expliquerai comment spécifier l'argument VM à l'époque.
Vous pouvez spécifier l'argument VM en ajoutant l'annotation Fork à la méthode à évaluer comme indiqué ci-dessous et en utilisant l'attribut JvmArgsAppend. Dans cet exemple, "-XX: -Inline" est spécifié.
@Benchmark
@Fork(jvmArgsAppend = "-XX:-Inline") //Spécifiez les arguments de VM avec des annotations
public String Aucune extension en ligne() {
return execute();
}
De plus, en implémentant comme suit, il est possible de comparer la présence ou l'absence d'arguments VM en même temps.
@Benchmark
public String Avec extension en ligne() {
return execute();
}
@Benchmark
@Fork(jvmArgsAppend = "-XX:-Inline") //Spécifiez les arguments de VM avec des annotations
public String Aucune extension en ligne() {
return execute();
}
Recommended Posts