Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8055923

jdk.nashorn.internal.{codegen.CompilationPhase|runtime.Timing} should use System.nanoTime

    XMLWordPrintable

    Details

    • Type: Enhancement
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 9
    • Component/s: core-libs
    • Subcomponent:
    • Resolved In Build:
      b29
    • CPU:
      generic
    • OS:
      generic

      Backports

        Description

        If you look into CompilationPhase internal profiling, you will notice it uses System.currentTimeMillis for internal profiling, which limits the resolution to 1ms. If the compilation phase is faster than 1ms, then runtime.Timing will "aggregate" zero result into its accumulated statistics. Please change the uses to System.nanoTime.

        Additionally, it might be worthwhile to consider other places as well:

        $ ack-grep currentTimeMillis
        src/jdk/nashorn/internal/codegen/OptimisticTypesPersistence.java
        198: final long now = System.currentTimeMillis();

        src/jdk/nashorn/internal/codegen/CompilationPhase.java
        633: startTime = System.currentTimeMillis();
        646: endTime = System.currentTimeMillis();

        src/jdk/nashorn/internal/objects/NativeDate.java
        134: this(System.currentTimeMillis());
        257: return System.currentTimeMillis();

        src/jdk/nashorn/internal/parser/Parser.java
        258: final long t0 = isTimingEnabled ? System.currentTimeMillis() : 0L;
        279: env._timing.accumulateTime(toString(), System.currentTimeMillis() - t0);
        280: log.info(end, "' in ", System.currentTimeMillis() - t0, " ms");

        src/jdk/nashorn/internal/runtime/Timing.java
        60: this.startTime = System.currentTimeMillis();
        169: final long t = System.currentTimeMillis();

          Attachments

            Issue Links

              Activity

                People

                Assignee:
                lagergren Marcus Lagergren
                Reporter:
                shade Aleksey Shipilev
                Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                  Dates

                  Created:
                  Updated:
                  Resolved: