Mätning av körtiden för koden är avgörande för att optimera prestanda i Java-applikationer. Det hjälper utvecklare att identifiera flaskhalsar och förbättra effektiviteten. Denna artikel utforskar vanliga metoder för att beräkna genomförandetiden och ger praktiska exempel.
Använda System.nanoTime()
]System.nanoTime()]] metoden erbjuder högupplöst tidsmätning. Den returnerar det aktuella värdet av den mest exakta tillgängliga system timer, i nanosekunder. För att mäta utförandetid, spela in starttiden innan koden körs och sluttiden efteråt. Skillnaden indikerar den förflutna tiden.
Exempel:
Lång startTime = System.nanoTime();]
//kod för att mäta
Långt slutTid = System.nanoTime();]
Lång varaktighet = endTime - startTime; ]
Använda System.currentTimeMillis()
]System.currentTimeMillis()]]]-metoden ger den aktuella tiden i millisekunder. Det är mindre exakt än ] men lämplig för mätning av längre varaktigheter. Liknande den tidigare metoden, spela in start- och sluttiderna runt kodblocket.
Exempel:
Lång startTime = System.currentTimeMillis();]
//kod för att mäta
Långt slutTid = System.currentTimeMillis(),]
Lång varaktighet = endTime - startTime; ]
Använda Javas omedelbara klass
]]] Instant[]] klass från ]]java.time[]]]]]]] paketet erbjuder en modern inställning till tidsmätning. Det ger nanosekund precision och är lämplig för mätning av varaktigheter.
Exempel:
] Instant start = Instant.now();]
//kod för att mäta
] Instant end = Instant.now();]
Varaktighet = Varaktighet.mellan (start, slut);
Real-världsexempel
Anta att du vill mäta hur lång tid det tar att sortera en stor array. Använda ]System.nanoTime()], kan du implementera följande:
]]int[[] array= new int [1 000 000];]
// Populär matris
Lång startTime = System.nanoTime();]
]Arrays.sort(array);
Långt slutTid = System.nanoTime();]
]System.out.println("Sorting tog" + (endTime - startTime) + "nanosekunder");]