@Setup(Level.Trial)
  public void buildDecoder() {
    switch (api) {
      case "list":
        decoder = new JacksonDecoder();
        type = new TypeReference<List<Car>>() {}.getType();
        break;
      case "iterator":
        decoder = JacksonIteratorDecoder.create();
        type = new TypeReference<Iterator<Car>>() {}.getType();
        break;
      case "stream":
        decoder = StreamDecoder.create(JacksonIteratorDecoder.create());
        type = new TypeReference<Stream<Car>>() {}.getType();
        break;
      default:
        throw new IllegalStateException("Unknown api: " + api);
    }
  }
This test shows up how fast different json array response processing implementations are.
benchmark/src/main/java/feign/benchmark/DecoderIteratorsBenchmark.java