Bernd,
Thank you for giving me an example.
I tried it with 1sec( 1000000us) sleep, then I got 1010.
I think 1010 represent elapsed time in milliseconds and this is the same
accuracy as I tried before.
After changing CONFIG_USEC_PER_TICK from 10000(default) to 1000, I got
1001 which is better accuracy.
Thank you very much.
Yuta Ide
On 2021/04/30 3:06, Bernd Walter wrote:
I usually do the following to measure time differences:
struct timespec tp;
uint64_t starttime;
clock_gettime(CLOCK_MONOTONIC, &tp);
starttime = ((uint64_t)(tp.tv_sec) * 1000000) + tp.tv_nsec / 1000;
//do something
clock_gettime(CLOCK_MONOTONIC, &tp);
uint64_t timeconsumed = (((uint64_t)(tp.tv_sec) * 1000000) + tp.tv_nsec
/ 1000 - starttime) / 1000;
This requires CONFIG_CLOCK_MONOTONIC to be configured.
This is immune to (wall)clock updates.
Result is in usec, but not necessarily in usec granularity.
On Fri, Apr 30, 2021 at 02:07:15AM +0900, yuta wrote:
Brennan,
Thank you for your advice.
I checked links you shared and
https://www.gnu.org/software/libc/manual/html_node/CPU-Time.html
I got elapsed time. Thank you.
However I'm wondering why the elapsed time I got was not exactly the same I
expected to get.
I tried below.
// ***** start
clock_t start, end;
double cpu_time_used;
start = clock();
usleep(1000000); // 1sec
end = clock();
cpu_time_used = ((double)(end - start)) / CLOCKS_PER_SEC;
printf("CPU time used: %f sec\n", cpu_time_used);
// ***** end
What I got is ...
"CPU time used: 1.010000 sec" (I expected to get 1.000000 sec)
Do you have any idea?
Yuta Ide
On 2021/04/30 0:30, Brennan Ashton wrote:
On Thu, Apr 29, 2021, 8:16 AM yuta <yutr...@gmail.com> wrote:
Hi all.
I'm new to NuttX.
I'm not sure if it's no problem me asking some personal question about
NuttX here. (please tell me if better place to ask.)
by the way, I have made my app in apps/examples/<my app>. It's working
well. Now, I would like to measure elapsed time during processing a
program by put codes like below.
NuttX supports the POSIX time interfaces so you are looking for something
like this.
https://www.gnu.org/software/libc/manual/html_node/Calculating-Elapsed-Time.html
There is also CPU time measurements, but NuttX does not treat this exactly
correct as it is expected to give the amount of clock ticks the CPU has
spent on a process. Instead with NuttX you get ticks since boot.
https://www.gnu.org/software/libc/manual/html_node/Processor-And-CPU-Time.html
--Brennan