MCPcopy Create free account
hub / github.com/VirtualGL/virtualgl / benchmark

Function benchmark

util/nettest.cpp:38–132  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

36#if defined(sun) || defined(linux)
37
38void benchmark(int interval, char *ifname)
39{
40 double mbitsRead = 0., mbitsSent = 0.;
41 unsigned long long bytesRead = 0, bytesSent = 0;
42
43 #ifdef sun
44
45 kstat_ctl_t *kc = NULL;
46 kstat_t *kif = NULL;
47 if((kc = kstat_open()) == NULL) { THROW_UNIX(); }
48 if((kif = kstat_lookup(kc, NULL, -1, ifname)) == NULL) { THROW_UNIX(); }
49
50 #elif defined(linux)
51
52 FILE *f = NULL;
53 if((f = fopen("/proc/net/dev", "r")) == NULL)
54 THROW("Could not open /proc/net/dev");
55
56 #endif
57
58 double tStart = GetTime();
59 for(;;)
60 {
61 double tEnd = GetTime();
62
63 #ifdef sun
64
65 kstat_named_t *data = NULL;
66 if(kstat_read(kc, kif, NULL) < 0) THROW_UNIX();
67 if((data =
68 (kstat_named_t *)kstat_data_lookup(kif, (char *)"rbytes64")) == NULL)
69 THROW_UNIX();
70 if(bytesRead != 0)
71 {
72 if(bytesRead > data->value.ui64)
73 mbitsRead += ((double)data->value.ui64 + 4294967296. -
74 (double)bytesRead) * 8. / 1000000.;
75 else
76 mbitsRead += ((double)data->value.ui64 -
77 (double)bytesRead) * 8. / 1000000.;
78 }
79 bytesRead = data->value.ui64;
80 if((data =
81 (kstat_named_t *)kstat_data_lookup(kif, (char *)"obytes64")) == NULL)
82 THROW_UNIX();
83 if(bytesSent != 0)
84 {
85 if(bytesSent > data->value.ui64)
86 mbitsSent += ((double)data->value.ui64 + 4294967296. -
87 (double)bytesSent) * 8. / 1000000.;
88 else
89 mbitsSent += ((double)data->value.ui64 -
90 (double)bytesSent) * 8. / 1000000.;
91 }
92 bytesSent = data->value.ui64;
93
94 #elif defined(linux)
95

Callers 1

mainFunction · 0.85

Calls 1

GetTimeFunction · 0.85

Tested by

no test coverage detected