How can I measure time from adb shell with milliseconds or nanoseconds resolution?
Usingdate +%.%N
from adb shell returns 1401546811.N
(seconds resolution) instead of something like 1401547289.231869798
(nanoseconds resolution).
How can I get either milliseconds or nanoseconds resolution from adb shell?
Is there some terminal program that I can use to give me this?
I am able to measure time using System.currentTimeMillis()
and System.nanoTime()
from Android application code itself, but I also need something from within adb shell
.
The time command itself is not capable of doing this directly. It does output a time in a fractional format, so it can be parsed back into milliseconds by multiplying by 1000:
How to use ADB Shell 1 Step 1: Set up ADB#N#Setting up ADB is a pretty simple process depending on your requirements. You can set it up for... 2 Step 2: Make sure ADB is working#N#(Please first make sure you have set up ADB as given above.)#N#Open CMD in the Platform... 3 Step 3: Use ADB Shell More ...
A logic analyzer is one of the best tools for accurately measuringexecution time with microsecond resolution, especially when accuratetiming is essential. The drawback is that the it requires specializedhardware and more effort than some of the previous techniques describedabove. There are two approaches to using a logic analyzer.
A typical way to use the command is to wrap the program that isbeing measured in a shell script or alias with the following commands: As with the stop-watch method, this will only provide an estimate ofhow long the full program takes to execute. It does not take intoconsideration preemption, interrupts, or I/O.
mksh
(the standard Android shell since version 4.0) has a built-in EPOCHREALTIME
environment variable:
Time since the epoch, as returned by
gettimeofday(2)
, formatted as decimal tv_sec followed by a dot.
and tv_usec padded to exactly six decimal digits.
So the command to get epoch
time with microsecond accuracy in Windows would be:
adb shell echo $EPOCHREALTIME
or in Linux:
adb shell 'echo $EPOCHREALTIME'
If you just need millisecond accuracy:
adb shell 'echo ${EPOCHREALTIME:0:14}'
Or just the milliseconds part to use with another time format:
adb shell 'echo $(date +%T)${EPOCHREALTIME:10:4}'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With