1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #include <iostream>
- #include <string>
- #include <vector>
- #include <unordered_map>
- #include <chrono>
- #include <cstdlib>
- #include <fstream>
- using namespace std;
- #include <unistd.h>
- 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<string, Test> 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<Test> 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<Test> tire;
- unordered_map<string, Test> umap;
- cout << "main: ";
- GetSysMemInfo();
- // group 2
- umap_test();
- // group 1
- tire_test();
- cout << "main: ";
- GetSysMemInfo();
- return 0;
- }
|