SF_INFO format_info;
float* data = 0;
-bool with_sync = false;
-
int
read_one (SNDFILE* sf, uint32_t nframes)
{
main (int argc, char* argv[])
{
vector<SNDFILE*> sndfiles;
- uint32_t sample_size;
- char optstring[] = "n:b:s";
+ uint32_t sample_size = sizeof (float);
+ char optstring[] = "n:b:sD";
uint32_t block_size = 64 * 1024;
uint32_t nfiles = 100;
bool direct = false;
const struct option longopts[] = {
{ "nfiles", 1, 0, 'n' },
{ "blocksize", 1, 0, 'b' },
- { "sync", 0, 0, 's' },
{ "direct", 0, 0, 'D' },
{ 0, 0, 0, 0 }
};
int c = 0;
char const * name_template = 0;
int samplerate;
-
+
while (1) {
if ((c = getopt_long (argc, argv, optstring, longopts, &option_index)) == -1) {
break;
case 'b':
block_size = atoi (optarg);
break;
- case 's':
- with_sync = true;
- break;
case 'D':
direct = true;
break;
usage ();
return 1;
}
-
+
for (uint32_t n = 1; n <= nfiles; ++n) {
SNDFILE* sf;
char path[PATH_MAX+1];
if (!Glib::file_test (path, Glib::FILE_TEST_EXISTS|Glib::FILE_TEST_IS_REGULAR)) {
break;
}
-
+
int flags = O_RDONLY;
int fd = open (path, flags, 0644);
}
samplerate = format_info.samplerate;
-
+
sndfiles.push_back (sf);
}
- cout << "Discovered " << nfiles+1 << " files using " << name_template << endl;
-
+ cout << "Discovered " << sndfiles.size() << " files using " << name_template << endl;
+
data = new float[block_size];
uint64_t read = 0;
-
+
while (true) {
gint64 before;
before = g_get_monotonic_time();
}
read += block_size;
gint64 elapsed = g_get_monotonic_time() - before;
- double bandwidth = (sndfiles.size() * block_size * sample_size) / (elapsed/1000000.0);
- double data_minutes = read / (double) (60.0 * 48000.0);
- const double data_rate = sndfiles.size() * sample_size * samplerate;
- stringstream ds;
- ds << setprecision (1) << data_minutes;
-
- cout << "BW @ " << read << " frames (" << ds.str() << " minutes) = " << (bandwidth/1048576.0) << " MB/sec " << bandwidth / data_rate << " x faster than necessary " << endl;
+ double bandwidth = ((sndfiles.size() * block_size * sample_size)/1048576.0) / (elapsed/1000000.0);
+
+ printf ("BW @ %Lu %.3f seconds bandwidth %.4f MB/sec\n", read, elapsed/1000000.0, bandwidth);
}
return 0;
}
-
+