static void benchmark(void) { int i; long sum = 0; long min_ms = LONG_MAX, max_ms = 0, avg_ms; pthread_t *tid; struct benchmark_thread_data *data; #ifdef CHUNKD_BENCHMARK stc_init(); #endif tid = xmalloc(sizeof(tid[0]) * threads); data = xmalloc(sizeof(data[0]) * threads); for (i = 0; i < threads; i++) { data[i].id = i; xpthread_create(&tid[i], NULL, benchmark_thread, &data[i]); } wait_threads(tid, threads); #define _MIN(a, b) ((a) < (b) ? (a) : (b)) #define _MAX(a, b) ((a) < (b) ? (b) : (a)) for (i = 0; i < threads; i++) { long ms = data[i].time_ms; sum += ms; min_ms = _MIN(min_ms, ms); max_ms = _MAX(max_ms, ms); } avg_ms = sum / threads; printf("%d %ld.%03ld %ld.%03ld %ld.%03ld\n", threads, avg_ms / 1000, avg_ms % 1000, min_ms / 1000, min_ms % 1000, max_ms / 1000, max_ms % 1000); if (verbose) { unsigned long long total_bytes; unsigned long long bytes_per_msec; total_bytes = value_length; total_bytes *= threads; total_bytes *= requests; bytes_per_msec = total_bytes / avg_ms; printf("Throughput: %llu KB/sec\n", bytes_per_msec * 1000UL / 1024UL); } free(data); free(tid); }
int main(int argc, char *argv[]) { setlocale(LC_ALL, "C"); stc_init(); SSL_library_init(); SSL_load_error_strings(); test(false); test(true); return 0; }
int main(int argc, char *argv[]) { setlocale(LC_ALL, "C"); stc_init(); SSL_library_init(); SSL_load_error_strings(); rbuf = randmem(RBUF_SZ); if (!rbuf) return 1; test(false); test(true); return 0; }