private void renderTiming(long renderingStartTimeMs) throws IOException {
        if (!getResult().getQuery().getPresentation().getTiming()) return;

        double milli = .001d;
        generator.writeObjectFieldStart(TIMING);

        if (getResult().getElapsedTime().firstFill() != 0L) {
            long queryTimeMs = getResult().getElapsedTime().weightedSearchTime();
            long summaryFetchTimeMs = getResult().getElapsedTime().weightedFillTime();
            generator.writeNumberField(QUERY_TIME, queryTimeMs * milli);
            generator.writeNumberField(SUMMARY_FETCH_TIME, summaryFetchTimeMs * milli);
        }

        long startTimeMs = getResult().getElapsedTime().first();
        if (startTimeMs != 0) {
            long searchTime = renderingStartTimeMs - startTimeMs;
            generator.writeNumberField(SEARCH_TIME, searchTime * milli);
        }

        generator.writeEndObject();
    }
Creates a json renderer using a custom executor.
Using a custom executor is useful for tests to avoid creating new threads for each renderer registry.
container-search/src/main/java/com/yahoo/search/rendering/JsonRenderer.java