- weak_ptr 智能指针助手(1)原理分析:(2)数据结构:(3)使用方法:a. lock() 获取所管理的对象的强引用指针 b. expired() 检测所管理的对象是否已经释放 c. get() 访问智能指针对象
6、C 11 更小更快更安全
- std::atomic 原子数据类型 多线程安全
- std::array 定长数组开销比 array 小和 std::vector 不同的是 array 的长度是固定的,不能动态拓展
- std::vector vector 瘦身 shrink_to_fit():将 capacity 减少为于 size() 相同的大小
- td::forward_list
forward_list 是单链表(std::list 是双链表),只需要顺序遍历的场合,forward_list 能更加节省内存,插入和删除的性能高于 list
- std::unordered_map、std::unordered_set用 hash 实现的无序的容器,插入、删除和查找的时间复杂度都是 O(1),在不关注容器内元素顺序的场合,使用 unordered 的容器能获得更高的性能六、 如何查看内存
- 系统中内存使用情况:/proc/meminfo
- 进程的内存使用情况:/proc/28040/status
- 查询内存总使用率:free
- 查询进程 cpu 和内存使用占比:top
- 虚拟内存统计:vmstat
- 进程消耗内存占比和排序:ps aux –sort -rss
- 释放系统内存缓存:/proc/sys/vm/drop_caches
To free pagecache, use echo 1 > /proc/sys/vm/drop_caches
To free dentries and inodes, use echo 2 > /proc/sys/vm/drop_caches
To free pagecache, dentries and inodes, use echo 3 >/proc/sys/vm/drop_caches