#include #include #include #include #include #include #include using namespace std; #include int GetSysMemInfo() { //获取系统当前可用内存 int tSize = 0, resident = 0, share = 0; ifstream buffer("/proc/self/statm"); buffer >> tSize >> resident >> share; buffer.close(); long page_size_kb = sysconf(_SC_PAGE_SIZE) / 1024; // in case x86-64 is configured to use 2MB pages double rss = resident * page_size_kb; cout << "RSS: " << rss << " kB.\t\t"; double shared_mem = share * page_size_kb; cout << "Shared Memory: " << shared_mem << " kB.\t\t"; cout << "Private Memory: " << rss - shared_mem << "kB." << endl; return 0; } #include "list.h" #include "tire.h" const int N = 1e5; const int M1 = 3; const int M2 = 5; struct Test { int num; string str; }; void umap_test() { unordered_map umap; for (int i = 0; i < N; ++i) { Test test; test.num = i + 1; test.str = to_string(i + 1); umap.insert({ test.str, test }); }; cout << "umap: "; GetSysMemInfo(); } void tire_test() { Tire tire; for (int i = 0; i < N; ++i) { Test test; test.num = i + 1; test.str = to_string(i + 1); tire.insert(test.str, test); }; cout << "tire: "; GetSysMemInfo(); } int main() { Tire tire; unordered_map umap; cout << "main: "; GetSysMemInfo(); // group 2 umap_test(); // group 1 tire_test(); cout << "main: "; GetSysMemInfo(); return 0; }