Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: C++ Windows
How can i measure sequential read/write speeds?
is there any API, library that can help me?
Posted 18-Mar-14 7:06am

1 solution

Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

On most POSIX systems, you can use clock.
 
#include <time.h>

clock_t start = clock();
do_some_work();
clock_t elapsed = clock() - start;
 
On x86 systems with inline assembly, you can use RDSTC.
 
 
long long __declspec(naked) tick()
{
    rdtsc;
}
 
long long start = tick();
do_some_work();
long long elapsed = tick() - start;
 
Another POSIX API is clock_gettime.
 
#include <unistd.h>
struct timeval start, elapsed;
 
clock_gettime(CLOCK_MONOTONIC, &start);
do_some_work();
clock_gettime(CLOCK_MONOTONIC, &elapsed);
 
if (start.tv_usec > elapsed.tv_usec)
elapsed.tv_sec--;
elapsed.tv_usec -= start.tv_usec;
elapsed.tv_sec -= start.tv_sec;
 
// elapsed contains elapsed time in seconds (tv_sec) and microseconds (tv_usec).
</unistd.h>
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 Mathew Soji 274
1 BillWoodruff 270
2 Afzaal Ahmad Zeeshan 244
3 Sergey Alexandrovich Kryukov 240
4 Raul Iloc 160
0 OriginalGriff 6,219
1 Sergey Alexandrovich Kryukov 5,853
2 DamithSL 5,103
3 Manas Bhardwaj 4,549
4 Maciej Los 3,845


Advertise | Privacy | Mobile
Web02 | 2.8.1411019.1 | Last Updated 18 Mar 2014
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100