Benchmark

Below you’ll find the latest method call costings in running the PerfKit JMH benchmark on the following hardware.

  Model Name:	Mac mini
  Model Identifier:	Macmini9,1
  Chip:	Apple M1
  Total Number of Cores:	8 (4 performance and 4 efficiency)
  Memory:	8 GB
# JMH version: 1.26
# VM version: JDK 1.8.0_275, OpenJDK 64-Bit Server VM, 25.275-b01
# VM invoker: /Library/Java/JavaVirtualMachines/zulu8.50.0.1013/zulu-8.jdk/Contents/Home/jre/bin/java
# VM options: -server -Dio.opensignals.services.spi.factory=io.opensignals.services.ext.spi.alpha.ProviderFactory -Dprofile=alpha
# Warmup: 2 iterations, 1 s each
# Measurement: 2 iterations, 2 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op

Benchmark                                         Mode  Cnt   Score    Error  Units
PerfKit.context_service                           avgt    4   6.982 ±  0.353  ns/op
PerfKit.context_subscribe_cancel                  avgt    4  12.957 ±  0.469  ns/op
PerfKit.context_subscribe_class_cancel            avgt    4  14.162 ±  0.172  ns/op
PerfKit.environment_empty_get_boolean             avgt    4   2.746 ±  0.150  ns/op
PerfKit.environment_empty_get_char_seq            avgt    4   2.757 ±  0.021  ns/op
PerfKit.environment_empty_get_double              avgt    4   2.731 ±  0.059  ns/op
PerfKit.environment_empty_get_enum                avgt    4   3.685 ±  0.023  ns/op
PerfKit.environment_empty_get_float               avgt    4   4.150 ±  0.038  ns/op
PerfKit.environment_empty_get_integer             avgt    4   2.745 ±  0.170  ns/op
PerfKit.environment_empty_get_long                avgt    4   2.730 ±  0.077  ns/op
PerfKit.environment_empty_get_name                avgt    4   2.753 ±  0.034  ns/op
PerfKit.environment_empty_get_string              avgt    4   2.731 ±  0.032  ns/op
PerfKit.environment_environment_environment       avgt    4   3.785 ±  0.134  ns/op
PerfKit.environment_environment_name_supplier     avgt    4   8.334 ±  0.068  ns/op
PerfKit.environment_environment_name_value        avgt    4  12.703 ±  0.102  ns/op
PerfKit.environment_single_get_string             avgt    4   4.023 ±  0.112  ns/op
PerfKit.name_chain                                avgt    4  21.547 ±  0.239  ns/op
PerfKit.name_class                                avgt    4   6.735 ±  0.131  ns/op
PerfKit.name_class_string                         avgt    4  13.465 ±  0.226  ns/op
PerfKit.name_enum                                 avgt    4   8.455 ±  0.220  ns/op
PerfKit.name_method                               avgt    4  12.794 ±  0.276  ns/op
PerfKit.name_name                                 avgt    4   8.594 ±  0.260  ns/op
PerfKit.name_name_string_string                   avgt    4  21.594 ±  0.236  ns/op
PerfKit.name_parse                                avgt    4   6.091 ±  0.146  ns/op
PerfKit.name_root                                 avgt    4   6.117 ±  0.079  ns/op
PerfKit.name_string_string_string                 avgt    4  21.573 ±  0.431  ns/op
PerfKit.name_to_string                            avgt    4   2.779 ±  0.044  ns/op
PerfKit.service_emit_start                        avgt    4  12.804 ±  3.393  ns/op
PerfKit.service_emit_succeed                      avgt    4  16.699 ±  2.235  ns/op
PerfKit.service_emit_succeed_with_callback        avgt    4  17.388 ±  0.545  ns/op
PerfKit.service_get_status                        avgt    4   2.750 ±  0.061  ns/op
PerfKit.service_receipt_succeed                   avgt    4  16.399 ±  0.589  ns/op
PerfKit.service_receipt_succeed_with_callback     avgt    4  17.589 ±  1.472  ns/op
PerfKit.service_signal_emit_start                 avgt    4  12.564 ±  0.385  ns/op
PerfKit.service_signal_emit_succeed               avgt    4  16.569 ±  0.203  ns/op
PerfKit.service_start                             avgt    4  14.128 ±  3.736  ns/op
PerfKit.service_start_emit                        avgt    4  14.472 ±  0.098  ns/op
PerfKit.service_succeed                           avgt    4  17.360 ±  0.304  ns/op
PerfKit.service_succeed_emit                      avgt    4  17.808 ±  0.085  ns/op
PerfKit.service_succeed_emit_with_callback        avgt    4  18.428 ±  0.449  ns/op
PerfKit.service_succeed_with_callback             avgt    4  20.540 ± 12.408  ns/op
PerfKit.service_succeeded                         avgt    4  17.340 ±  0.239  ns/op
PerfKit.service_succeeded_with_callback           avgt    4  20.283 ± 14.282  ns/op
PerfKit.services_context_default                  avgt    4  10.759 ±  0.226  ns/op
PerfKit.services_context_environment              avgt    4  58.551 ±  1.673  ns/op
PerfKit.services_environment                      avgt    4   2.633 ±  0.023  ns/op
PerfKit.services_environment_string_value_create  avgt    4   9.526 ±  0.161  ns/op
PerfKit.services_variable_boolean                 avgt    4   3.907 ±  0.045  ns/op
PerfKit.services_variable_char_seq                avgt    4   3.907 ±  0.034  ns/op
PerfKit.services_variable_double                  avgt    4   3.908 ±  0.053  ns/op
PerfKit.services_variable_enum                    avgt    4   5.863 ±  0.195  ns/op
PerfKit.services_variable_float                   avgt    4   3.920 ±  0.241  ns/op
PerfKit.services_variable_integer                 avgt    4   3.899 ±  0.068  ns/op
PerfKit.services_variable_long                    avgt    4   3.902 ±  0.048  ns/op
PerfKit.services_variable_object                  avgt    4   3.909 ±  0.074  ns/op
PerfKit.services_variable_string                  avgt    4   3.929 ±  0.202  ns/op
PerfKit.variable_of_boolean                       avgt    4   2.677 ±  0.046  ns/op
PerfKit.variable_of_char_seq                      avgt    4   2.679 ±  0.060  ns/op
PerfKit.variable_of_double                        avgt    4   2.676 ±  0.101  ns/op
PerfKit.variable_of_enum                          avgt    4   2.694 ±  0.205  ns/op
PerfKit.variable_of_float                         avgt    4   2.680 ±  0.062  ns/op
PerfKit.variable_of_integer                       avgt    4   2.674 ±  0.066  ns/op
PerfKit.variable_of_long                          avgt    4   2.682 ±  0.045  ns/op
PerfKit.variable_of_name                          avgt    4   2.677 ±  0.071  ns/op
PerfKit.variable_of_object                        avgt    4   2.674 ±  0.043  ns/op
PerfKit.variable_of_string                        avgt    4   2.707 ±  0.193  ns/op

# JMH version: 1.26
# VM version: JDK 11.0.9.1, OpenJDK 64-Bit Server VM, 11.0.9.1+1-LTS
# VM invoker: /Library/Java/JavaVirtualMachines/zulu11.43.1007/zulu-11.jdk/Contents/Home/bin/java
# VM options: -server -Dio.opensignals.services.spi.factory=io.opensignals.services.ext.spi.alpha.ProviderFactory -Dprofile=alpha
# Warmup: 2 iterations, 1 s each
# Measurement: 2 iterations, 2 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op

Benchmark                                         Mode  Cnt   Score   Error  Units
PerfKit.context_service                           avgt    4   6,835 ± 0,069  ns/op
PerfKit.context_subscribe_cancel                  avgt    4  13,906 ± 0,037  ns/op
PerfKit.context_subscribe_class_cancel            avgt    4  14,416 ± 0,170  ns/op
PerfKit.environment_empty_get_boolean             avgt    4   2,732 ± 0,051  ns/op
PerfKit.environment_empty_get_char_seq            avgt    4   2,735 ± 0,062  ns/op
PerfKit.environment_empty_get_double              avgt    4   2,729 ± 0,053  ns/op
PerfKit.environment_empty_get_enum                avgt    4   3,184 ± 0,022  ns/op
PerfKit.environment_empty_get_float               avgt    4   2,963 ± 0,050  ns/op
PerfKit.environment_empty_get_integer             avgt    4   2,740 ± 0,038  ns/op
PerfKit.environment_empty_get_long                avgt    4   2,736 ± 0,074  ns/op
PerfKit.environment_empty_get_name                avgt    4   2,729 ± 0,085  ns/op
PerfKit.environment_empty_get_string              avgt    4   2,736 ± 0,055  ns/op
PerfKit.environment_environment_environment       avgt    4   3,690 ± 0,016  ns/op
PerfKit.environment_environment_name_supplier     avgt    4   6,405 ± 0,220  ns/op
PerfKit.environment_environment_name_value        avgt    4   9,312 ± 0,468  ns/op
PerfKit.environment_single_get_string             avgt    4   2,748 ± 0,131  ns/op
PerfKit.name_chain                                avgt    4  20,701 ± 0,283  ns/op
PerfKit.name_class                                avgt    4   5,853 ± 0,384  ns/op
PerfKit.name_class_string                         avgt    4  11,860 ± 1,211  ns/op
PerfKit.name_enum                                 avgt    4   7,298 ± 0,342  ns/op
PerfKit.name_method                               avgt    4  12,752 ± 0,505  ns/op
PerfKit.name_name                                 avgt    4   7,312 ± 0,292  ns/op
PerfKit.name_name_string_string                   avgt    4  20,715 ± 0,254  ns/op
PerfKit.name_parse                                avgt    4   6,076 ± 0,713  ns/op
PerfKit.name_root                                 avgt    4   6,030 ± 0,065  ns/op
PerfKit.name_string_string_string                 avgt    4  21,846 ± 0,721  ns/op
PerfKit.name_to_string                            avgt    4   2,707 ± 0,040  ns/op
PerfKit.service_emit_start                        avgt    4  13,286 ± 0,423  ns/op
PerfKit.service_emit_succeed                      avgt    4  17,107 ± 0,133  ns/op
PerfKit.service_emit_succeed_with_callback        avgt    4  17,444 ± 0,143  ns/op
PerfKit.service_get_status                        avgt    4   2,754 ± 0,033  ns/op
PerfKit.service_receipt_succeed                   avgt    4  16,821 ± 1,375  ns/op
PerfKit.service_receipt_succeed_with_callback     avgt    4  17,531 ± 0,345  ns/op
PerfKit.service_signal_emit_start                 avgt    4  12,514 ± 0,462  ns/op
PerfKit.service_signal_emit_succeed               avgt    4  16,580 ± 0,267  ns/op
PerfKit.service_start                             avgt    4  13,745 ± 0,467  ns/op
PerfKit.service_start_emit                        avgt    4  14,330 ± 0,271  ns/op
PerfKit.service_succeed                           avgt    4  17,414 ± 0,437  ns/op
PerfKit.service_succeed_emit                      avgt    4  17,958 ± 0,462  ns/op
PerfKit.service_succeed_emit_with_callback        avgt    4  18,699 ± 1,434  ns/op
PerfKit.service_succeed_with_callback             avgt    4  20,634 ± 1,242  ns/op
PerfKit.service_succeeded                         avgt    4  17,471 ± 0,396  ns/op
PerfKit.service_succeeded_with_callback           avgt    4  20,648 ± 0,840  ns/op
PerfKit.services_context_default                  avgt    4  10,590 ± 0,078  ns/op
PerfKit.services_context_environment              avgt    4  60,798 ± 2,471  ns/op
PerfKit.services_environment                      avgt    4   2,766 ± 0,043  ns/op
PerfKit.services_environment_string_value_create  avgt    4   8,520 ± 0,058  ns/op
PerfKit.services_variable_boolean                 avgt    4   4,345 ± 0,030  ns/op
PerfKit.services_variable_char_seq                avgt    4   4,346 ± 0,013  ns/op
PerfKit.services_variable_double                  avgt    4   4,346 ± 0,008  ns/op
PerfKit.services_variable_enum                    avgt    4   5,626 ± 0,097  ns/op
PerfKit.services_variable_float                   avgt    4   4,348 ± 0,017  ns/op
PerfKit.services_variable_integer                 avgt    4   4,346 ± 0,011  ns/op
PerfKit.services_variable_long                    avgt    4   4,345 ± 0,083  ns/op
PerfKit.services_variable_object                  avgt    4   4,352 ± 0,049  ns/op
PerfKit.services_variable_string                  avgt    4   4,348 ± 0,027  ns/op
PerfKit.variable_of_boolean                       avgt    4   2,763 ± 0,078  ns/op
PerfKit.variable_of_char_seq                      avgt    4   2,770 ± 0,060  ns/op
PerfKit.variable_of_double                        avgt    4   2,781 ± 0,012  ns/op
PerfKit.variable_of_enum                          avgt    4   2,768 ± 0,147  ns/op
PerfKit.variable_of_float                         avgt    4   2,778 ± 0,025  ns/op
PerfKit.variable_of_integer                       avgt    4   2,779 ± 0,033  ns/op
PerfKit.variable_of_long                          avgt    4   2,772 ± 0,047  ns/op
PerfKit.variable_of_name                          avgt    4   2,769 ± 0,062  ns/op
PerfKit.variable_of_object                        avgt    4   2,694 ± 0,078  ns/op
PerfKit.variable_of_string                        avgt    4   2,778 ± 0,037  ns/op
# JMH version: 1.26
# VM version: JDK 1.8.0_275, OpenJDK 64-Bit Server VM, 25.275-b01
# VM invoker: /Library/Java/JavaVirtualMachines/zulu8.50.0.1013/zulu-8.jdk/Contents/Home/jre/bin/java
# VM options: -server -Dio.opensignals.services.spi.factory=io.opensignals.services.ext.spi.alpha.ProviderFactory -Dprofile=alpha
# Warmup: 2 iterations, 1 s each
# Measurement: 2 iterations, 2 s each
# Timeout: 10 min per iteration
# Threads: 2 threads, will synchronize iterations
# Benchmark mode: Average time, time/op

Benchmark                                      Mode  Cnt   Score     Error  Units
PerfKit.service_emit_start                     avgt    4  13.728 ±   0.723  ns/op
PerfKit.service_emit_succeed                   avgt    4  87.945 ± 334.853  ns/op
PerfKit.service_emit_succeed_with_callback     avgt    4  51.258 ±  40.369  ns/op
PerfKit.service_get_status                     avgt    4   2.832 ±   0.028  ns/op
PerfKit.service_receipt_succeed                avgt    4  47.098 ±   8.680  ns/op
PerfKit.service_receipt_succeed_with_callback  avgt    4  62.026 ±  16.256  ns/op
PerfKit.service_signal_emit_start              avgt    4  13.017 ±   0.162  ns/op
PerfKit.service_signal_emit_succeed            avgt    4  49.541 ±   5.143  ns/op
PerfKit.service_start                          avgt    4  14.480 ±   3.440  ns/op
PerfKit.service_start_emit                     avgt    4  14.942 ±   0.337  ns/op
PerfKit.service_succeed                        avgt    4  49.573 ±  24.070  ns/op
PerfKit.service_succeed_emit                   avgt    4  51.841 ±  15.221  ns/op
PerfKit.service_succeed_emit_with_callback     avgt    4  49.091 ±  11.612  ns/op
PerfKit.service_succeed_with_callback          avgt    4  65.288 ±  23.526  ns/op
PerfKit.service_succeeded                      avgt    4  52.470 ±   8.150  ns/op
PerfKit.service_succeeded_with_callback        avgt    4  58.468 ±  27.392  ns/op

# JMH version: 1.26
# VM version: JDK 11.0.9.1, OpenJDK 64-Bit Server VM, 11.0.9.1+1-LTS
# VM invoker: /Library/Java/JavaVirtualMachines/zulu11.43.1007/zulu-11.jdk/Contents/Home/bin/java
# VM options: -server -Dio.opensignals.services.spi.factory=io.opensignals.services.ext.spi.alpha.ProviderFactory -Dprofile=alpha
# Warmup: 2 iterations, 1 s each
# Measurement: 2 iterations, 2 s each
# Timeout: 10 min per iteration
# Threads: 2 threads, will synchronize iterations
# Benchmark mode: Average time, time/op

Benchmark                                      Mode  Cnt   Score    Error  Units
PerfKit.service_emit_start                     avgt    4  13,358 ±  2,908  ns/op
PerfKit.service_emit_succeed                   avgt    4  44,251 ±  6,026  ns/op
PerfKit.service_emit_succeed_with_callback     avgt    4  48,469 ± 16,613  ns/op
PerfKit.service_get_status                     avgt    4   2,850 ±  0,046  ns/op
PerfKit.service_receipt_succeed                avgt    4  45,645 ±  2,776  ns/op
PerfKit.service_receipt_succeed_with_callback  avgt    4  50,718 ±  2,288  ns/op
PerfKit.service_signal_emit_start              avgt    4  13,006 ±  0,165  ns/op
PerfKit.service_signal_emit_succeed            avgt    4  50,058 ±  1,131  ns/op
PerfKit.service_start                          avgt    4  14,572 ±  2,446  ns/op
PerfKit.service_start_emit                     avgt    4  14,194 ±  4,638  ns/op
PerfKit.service_succeed                        avgt    4  47,006 ±  6,915  ns/op
PerfKit.service_succeed_emit                   avgt    4  52,475 ± 25,335  ns/op
PerfKit.service_succeed_emit_with_callback     avgt    4  52,291 ± 27,489  ns/op
PerfKit.service_succeed_with_callback          avgt    4  56,391 ± 31,533  ns/op
PerfKit.service_succeeded                      avgt    4  51,242 ± 21,219  ns/op
PerfKit.service_succeeded_with_callback        avgt    4  51,603 ±  5,296  ns/op
# JMH version: 1.26
# VM version: JDK 1.8.0_275, OpenJDK 64-Bit Server VM, 25.275-b01
# VM invoker: /Library/Java/JavaVirtualMachines/zulu8.50.0.1013/zulu-8.jdk/Contents/Home/jre/bin/java
# VM options: -server -Dio.opensignals.services.spi.factory=io.opensignals.services.ext.spi.alpha.ProviderFactory -Dprofile=alpha
# Warmup: 2 iterations, 1 s each
# Measurement: 2 iterations, 2 s each
# Timeout: 10 min per iteration
# Threads: 4 threads, will synchronize iterations
# Benchmark mode: Average time, time/op

Benchmark                                      Mode  Cnt    Score    Error  Units
PerfKit.service_emit_start                     avgt    4   14.332 ±  0.393  ns/op
PerfKit.service_emit_succeed                   avgt    4  119.937 ±  9.999  ns/op
PerfKit.service_emit_succeed_with_callback     avgt    4  131.902 ± 34.850  ns/op
PerfKit.service_get_status                     avgt    4    2.924 ±  0.020  ns/op
PerfKit.service_receipt_succeed                avgt    4  128.177 ±  5.460  ns/op
PerfKit.service_receipt_succeed_with_callback  avgt    4  130.705 ± 22.604  ns/op
PerfKit.service_signal_emit_start              avgt    4   13.426 ±  0.241  ns/op
PerfKit.service_signal_emit_succeed            avgt    4  123.466 ±  9.715  ns/op
PerfKit.service_start                          avgt    4   15.629 ±  0.201  ns/op
PerfKit.service_start_emit                     avgt    4   15.414 ±  0.218  ns/op
PerfKit.service_succeed                        avgt    4  119.922 ± 10.925  ns/op
PerfKit.service_succeed_emit                   avgt    4  132.265 ± 21.739  ns/op
PerfKit.service_succeed_emit_with_callback     avgt    4  137.737 ± 22.319  ns/op
PerfKit.service_succeed_with_callback          avgt    4  154.700 ± 67.618  ns/op
PerfKit.service_succeeded                      avgt    4  131.171 ± 52.697  ns/op
PerfKit.service_succeeded_with_callback        avgt    4  168.613 ± 75.734  ns/op

# JMH version: 1.26
# VM version: JDK 11.0.9.1, OpenJDK 64-Bit Server VM, 11.0.9.1+1-LTS
# VM invoker: /Library/Java/JavaVirtualMachines/zulu11.43.1007/zulu-11.jdk/Contents/Home/bin/java
# VM options: -server -Dio.opensignals.services.spi.factory=io.opensignals.services.ext.spi.alpha.ProviderFactory -Dprofile=alpha
# Warmup: 2 iterations, 1 s each
# Measurement: 2 iterations, 2 s each
# Timeout: 10 min per iteration
# Threads: 4 threads, will synchronize iterations
# Benchmark mode: Average time, time/op

Benchmark                                      Mode  Cnt    Score    Error  Units
PerfKit.service_emit_start                     avgt    4   14,203 ±  0,531  ns/op
PerfKit.service_emit_succeed                   avgt    4  124,832 ± 45,278  ns/op
PerfKit.service_emit_succeed_with_callback     avgt    4  133,147 ± 25,875  ns/op
PerfKit.service_get_status                     avgt    4    2,956 ±  0,204  ns/op
PerfKit.service_receipt_succeed                avgt    4  125,389 ±  7,556  ns/op
PerfKit.service_receipt_succeed_with_callback  avgt    4  129,268 ± 16,588  ns/op
PerfKit.service_signal_emit_start              avgt    4   12,717 ±  0,395  ns/op
PerfKit.service_signal_emit_succeed            avgt    4  123,067 ± 28,185  ns/op
PerfKit.service_start                          avgt    4   14,337 ±  2,877  ns/op
PerfKit.service_start_emit                     avgt    4   14,638 ±  5,010  ns/op
PerfKit.service_succeed                        avgt    4  125,778 ± 97,221  ns/op
PerfKit.service_succeed_emit                   avgt    4  127,883 ± 28,166  ns/op
PerfKit.service_succeed_emit_with_callback     avgt    4  127,345 ± 66,144  ns/op
PerfKit.service_succeed_with_callback          avgt    4  124,523 ± 32,231  ns/op
PerfKit.service_succeeded                      avgt    4  116,561 ± 25,559  ns/op
PerfKit.service_succeeded_with_callback        avgt    4  134,557 ± 45,151  ns/op