static void onResultCreated(@NotNull CachedValueProvider.Result<?> result, @Nullable Object original) {
    long time = currentTime();
    ThreadContext context = ourContext.get();
    if (context.consumer == null || context.epoch != ourGlobalContext.epoch) return;

    Frame frame = context.topFrame;
    if (frame == null) return;

    EventPlace place =
      original == null ? place(CachedValueProfiler::findComputationPlace) :
      original instanceof CachedValueProvider.Result ? frame.places.get(original) :
      original instanceof Function ? place(CachedValueProfiler::findCallerPlace) : null;
    if (place == null) return;

    frame.places.put(result, place);
    ourFrameOverhead.overhead.addAndGet(currentTime() - time);
  }
static void onResultCreated(@NotNull CachedValueProvider.Result<?> result, @Nullable Object original)