@ApiStatus.Experimental
  public static <E extends Throwable> long measureExecutionTime(@NotNull ThrowableRunnable<E> runnable) throws E {
    long startTime = System.nanoTime();
    runnable.run();
    return getDurationMillis(startTime);
  }
@ApiStatus.Experimental
  public static <E extends Throwable> long measureExecutionTime(@NotNull ThrowableRunnable<E> runnable)