ObjectMapper.readValue의 첫 번째 초기화 및 실행이 느림

7737 단어 java
응용 프로그램의 첫 번째 초기화 및 실행ObjectMapper.readValue이 느리다는 사실을 알게 되었습니다. 정적 인스턴스objectMapper를 재사용하거나 매번 새 인스턴스objectMapper를 사용하더라도 최초 비용은 사라지지 않습니다. 그러나 전반적으로 정적objectMapper이 인스턴스보다 빠릅니다.

첫 번째 실행에는 약 420ms가 소요되지만 두 번째 실행에는 23ms만 필요합니다. 정적objectMapper 인스턴스 또는 objectMapper 인스턴스를 실행하더라도 첫 번째 인스턴스가 가장 깁니다.

String json = "{\"name\":\"car2\",\"keyA\":1,\"keyB\":2,\"wheels\":null,\"atomicCounter\":0,\"counter\":0,\"brand\":\"car brand\"}\n";

        // static objectMapper
        Stopwatch stopwatch = Stopwatch.createStarted();
        List<CompletableFuture<Car>> futureList = new ArrayList<>();
        for (int i =0; i < 9; i++) {
            CompletableFuture<Car> future = CompletableFuture.supplyAsync(() -> {
                // JsonUtil.toObject is a method to get static objectMapper and execute 'readvalue'
                return JsonUtil.toObject(json, new TypeReference<Car>() {});
            });
            futureList.add(future);
        }

        CompletableFuture.allOf(futureList.toArray(new CompletableFuture[]{})).join();
        System.out.println("static objectMapper " + stopwatch.toString());


        // instance objectMapper
        Stopwatch stopwatch1 = Stopwatch.createStarted();
        List<CompletableFuture<Car>> futureList2 = new ArrayList<>();
        for (int i =0; i < 9; i++) {
            CompletableFuture<Car> future = CompletableFuture.supplyAsync(() -> {
                Car car = null;
                try {
                    car = new ObjectMapper().readValue(json, new TypeReference<Car>() {});
                } catch (JsonProcessingException e) {
                    e.printStackTrace();
                }
                return car;
            }).exceptionally(e -> {throw new RuntimeException(e.getMessage());});
            futureList2.add(future);
        }

        CompletableFuture.allOf(futureList2.toArray(new CompletableFuture[]{})).join();
        System.out.println("instance objectMapper " + stopwatch1.toString());


실행 가능한 코드:
repo

좋은 웹페이지 즐겨찾기