Click here to Skip to main content
11,933,037 members (54,014 online)
Rate this:
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
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();
clock_t elapsed = clock() - start;

On x86 systems with inline assembly, you can use RDSTC.

long long __declspec(naked) tick()
long long start = tick();
long long elapsed = tick() - start;

Another POSIX API is clock_gettime.

#include <unistd.h>
struct timeval start, elapsed;
clock_gettime(CLOCK_MONOTONIC, &start);
clock_gettime(CLOCK_MONOTONIC, &elapsed);
if (start.tv_usec > elapsed.tv_usec)
elapsed.tv_usec -= start.tv_usec;
elapsed.tv_sec -= start.tv_sec;
// elapsed contains elapsed time in seconds (tv_sec) and microseconds (tv_usec).

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

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy | Mobile
Web01 | 2.8.151126.1 | Last Updated 18 Mar 2014
Copyright © CodeProject, 1999-2015
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