protected List<TimeRange> buildTimeRanges(long start, long end) {
        if (start >= end) {
            return null;
        }

        // include latest millisecond
        end += 1;

        final List<TimeRange> timeRanges = new ArrayList<>();
        do {
            long batchEnd = Math.min(start + FETCH_DATA_DURATION, end);
            timeRanges.add(new TimeRange(start, batchEnd));
            start = batchEnd;
        }
        while (start < end);

        return timeRanges;
    }
Split time ranges to insure the start time and end time is small then {@link #FETCH_DATA_DURATION}
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/ebpf/analyze/EBPFProfilingAnalyzer.java