/** Fornux C++ Superset -- Example. Outputs: Speed: 16043.546433 loops / s; Memory usage: 4552 kilobytes */ #include #include #include #include #include #include using namespace std; using namespace std::chrono; struct A { int x; int i; int j; }; struct B : virtual A { int k; int l; }; struct C : virtual A { int m; int n; }; struct D : B { int o; int p; }; struct E : C { int o; int p; }; struct list_node : D, E { int q; int r; list_node * p; }; int main() { milliseconds before, after; before = duration_cast(system_clock::now().time_since_epoch()); for (int i = 0; ; ++ i) { // cycle struct list_node * p = new list_node; p->p = new list_node; p->p->p = new list_node; p->p->p->p = p; // stats after = duration_cast(system_clock::now().time_since_epoch()); struct rusage r_usage; getrusage(RUSAGE_SELF, & r_usage); cout << "\rSpeed: " << setprecision(11) << i * 1000.0 / (after - before).count() << " loops / s; Memory usage: " << r_usage.ru_maxrss << " kilobytes" << flush; usleep(1); } return 0; }