docs: public static void runWith(
        String[] args, Function<BenchmarkSettings, SmCodecBenchmarkState> benchmarkStateFactory) {
  
      BenchmarkSettings settings =
          BenchmarkSettings.from(args).durationUnit(TimeUnit.NANOSECONDS).build();
  
      SmCodecBenchmarkState benchmarkState = benchmarkStateFactory.apply(settings);
  
      benchmarkState.runForSync(
          state -> {
            BenchmarkTimer timer = state.timer("timer");
            BenchmarkMeter meter = state.meter("meter");
            ServiceMessageCodec messageCodec = state.messageCodec();
            ServiceMessage message = state.messageWithByteBuf();
  
            return i -> {
              Context timeContext = timer.time();
              Object result =
                  messageCodec.encodeAndTransform(
                      message,
                      (dataByteBuf, headersByteBuf) -> {
                        ReferenceCountUtil.release(headersByteBuf);
                        return dataByteBuf;
                      });
              timeContext.stop();
              meter.mark();
              return result;
            };
          });
    }