Skip to content

Commit 2979b16

Browse files
committed
calculate ticksPerNanosecond in constructor
1 parent 037b237 commit 2979b16

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

sentry-async-profiler/src/main/java/io/sentry/asyncprofiler/convert/JfrAsyncProfilerToSentryProfileConverter.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.jetbrains.annotations.Nullable;
2323

2424
public final class JfrAsyncProfilerToSentryProfileConverter extends JfrConverter {
25-
private static final long NANOS_PER_SECOND = 1_000_000_000L;
25+
private static final double NANOS_PER_SECOND = 1_000_000_000.0;
2626

2727
private final @NotNull SentryProfile sentryProfile = new SentryProfile();
2828
private final @NotNull SentryStackTraceFactory stackTraceFactory;
@@ -64,6 +64,7 @@ private class ProfileEventVisitor extends AggregatedEventVisitor {
6464
private final @NotNull SentryStackTraceFactory stackTraceFactory;
6565
private final @NotNull JfrReader jfr;
6666
private final @NotNull Arguments args;
67+
private final double ticksPerNanosecond;
6768

6869
public ProfileEventVisitor(
6970
@NotNull SentryProfile sentryProfile,
@@ -74,6 +75,7 @@ public ProfileEventVisitor(
7475
this.stackTraceFactory = stackTraceFactory;
7576
this.jfr = jfr;
7677
this.args = args;
78+
ticksPerNanosecond = jfr.ticksPerSec / NANOS_PER_SECOND;
7779
}
7880

7981
@Override
@@ -122,8 +124,10 @@ private void processSampleWithStack(Event event, long threadId, StackTrace stack
122124
}
123125

124126
private double calculateTimestamp(Event event) {
125-
long nsFromStart = (event.time - jfr.chunkStartTicks) * NANOS_PER_SECOND / jfr.ticksPerSec;
126-
long timeNs = jfr.chunkStartNanos + nsFromStart;
127+
long nanosFromStart = (long) ((event.time - jfr.chunkStartTicks) / ticksPerNanosecond);
128+
129+
long timeNs = jfr.chunkStartNanos + nanosFromStart;
130+
127131
return DateUtils.nanosToSeconds(timeNs);
128132
}
129133

0 commit comments

Comments
 (0)