1
0

analysis6.cpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. #include <unordered_map>
  5. #include <chrono>
  6. #include <cstdlib>
  7. #include <fstream>
  8. using namespace std;
  9. #include <unistd.h>
  10. int GetSysMemInfo() { //获取系统当前可用内存
  11. int tSize = 0, resident = 0, share = 0;
  12. ifstream buffer("/proc/self/statm");
  13. buffer >> tSize >> resident >> share;
  14. buffer.close();
  15. long page_size_kb = sysconf(_SC_PAGE_SIZE) / 1024; // in case x86-64 is configured to use 2MB pages
  16. double rss = resident * page_size_kb;
  17. cout << "RSS: " << rss << " kB.\t\t";
  18. double shared_mem = share * page_size_kb;
  19. cout << "Shared Memory: " << shared_mem << " kB.\t\t";
  20. cout << "Private Memory: " << rss - shared_mem << "kB." << endl;
  21. return 0;
  22. }
  23. #include "list.h"
  24. #include "tire.h"
  25. const int N = 1e5;
  26. const int M1 = 3;
  27. const int M2 = 5;
  28. struct Test {
  29. int num;
  30. string str;
  31. };
  32. void umap_test() {
  33. unordered_map<string, Test> umap;
  34. for (int i = 0; i < N; ++i) {
  35. Test test;
  36. test.num = i + 1;
  37. test.str = to_string(i + 1);
  38. umap.insert({ test.str, test });
  39. };
  40. cout << "umap: ";
  41. GetSysMemInfo();
  42. }
  43. void tire_test() {
  44. Tire<Test> tire;
  45. for (int i = 0; i < N; ++i) {
  46. Test test;
  47. test.num = i + 1;
  48. test.str = to_string(i + 1);
  49. tire.insert(test.str, test);
  50. };
  51. cout << "tire: ";
  52. GetSysMemInfo();
  53. }
  54. int main() {
  55. Tire<Test> tire;
  56. unordered_map<string, Test> umap;
  57. cout << "main: ";
  58. GetSysMemInfo();
  59. // group 2
  60. umap_test();
  61. // group 1
  62. tire_test();
  63. cout << "main: ";
  64. GetSysMemInfo();
  65. return 0;
  66. }