Ik ben op zoek naar een manier om te bepalen/berekenen hoe lang de computer er over doet (real time) om een methode uit te voeren. Ik heb geen idee hoe dit moet. Zou iemand mij een zetje in de goede richting willen geven?
Eeh... jouw google is stuk?
Je kan prima bij de start van de methode de tijd in een variabele opslaan en dat aan het einde van de methode ook doen. Trek de twee tijden van elkaar af en je weet hoe lang iets duurt. En anders kan je kijken naar een profiler o.i.d.
Je kan prima bij de start van de methode de tijd in een variabele opslaan en dat aan het einde van de methode ook doen. Trek de twee tijden van elkaar af en je weet hoe lang iets duurt. En anders kan je kijken naar een profiler o.i.d.
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney
Voordat je de methode aanroept, de huidige tijd opslaan. Wanneer de methode klaar, wederom de huidige tijd opvragen. Deze dan van elkaar aftrekken en je bent er?
Je kunt System.nanoTime() gebruiken om de huidige tijd te bepalen. Als je dit op twee tijdstippen doet en het verschil berekent, weet je hoeveel nanoseconden dat geduurt heeft. Delen door een miljard om hiervan seconden te maken.
System.currentTimeMillis is je vriend.
-edit- .. Maar die van mijn bovenbuurman werkt vast beter
..
-edit- .. Maar die van mijn bovenbuurman werkt vast beter
[ Voor 20% gewijzigd door Janoz op 07-09-2008 17:31 ]
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Als je het iets beter wilt kunnen zien (al heb je dan weinig aan de echte tijd, maar alleen de vehoudingen tussen methods) kun je visualvm gebruiken. Sinds Java 1.6.0 zit het standaard bij de JDK, je kan het vinden in bin\jvisuallvm.exe
- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!
currentTimeMillis was inderdaad je vriend - als je call maar niet te kort duurde. Verschillen van 0-10 (of was het nou 0-20?) werden vaak niet opgemerkt, en als identiek moment in tijd aangeduidt.Janoz schreef op zondag 07 september 2008 @ 17:30:
System.currentTimeMillis is je vriend.
-edit- .. Maar die van mijn bovenbuurman werkt vast beter..
More than meets the eye
There is no I in TEAM... but there is ME
system specs
Onder Windows heb je vaak stappen van 16ms. Met nanoTime() wordt een preciezere timer gebruikt, al weet ik niet helemaal zeken in hoeverre die nauwkeurig is.IceManX schreef op zondag 07 september 2008 @ 20:24:
[...]
currentTimeMillis was inderdaad je vriend - als je call maar niet te kort duurde. Verschillen van 0-10 (of was het nou 0-20?) werden vaak niet opgemerkt, en als identiek moment in tijd aangeduidt.
Pagina: 1