• 时刻保持学习状态


    • 每天保持一定的刷题量
    • 八股文复习
    • 内核学习

    linux自启动方法:

    1. /etc/rc.local添加要执行程序的全路径
    2. /etc/rc.d/init.d添加自启动脚本
    3. 安装对应的服务,在/etc/systemd/system下创建service脚本设置为开机启动

    内存池管理:

    内存管理

    栈:函数开辟,局部变量

    堆:内存申请

    全局存储区:全局变量

    静态存储区:static

    常量存储区:存放常量不能修改

    代码区:存放代码

    内存池管理

    频繁使用new malloc 会造成大量的内存碎片,导致性能下降

    内存池就是在真正使用内存前,先申请分配一定数量的,大小相等的内存块作为备用,当有内存的需求时就从内存池取,不够就申请新的内存。

    内存池设计

    子类和基类

    dynamic_cast转换可以判断子类是该基类

    Gcc编译参数

    -O -O0 -O1 -O2 -O3 四级优化

    0不做任何优化,适用于debug阶段

    1对代码分支,常量和表达式进行优化

    2寄存器级的优化,编译期间占用更多的内存和编译时间

    3伪寄存器网络,内联函数,循环优化

    s代码大小的优化,基本不用关心,优化会打乱程序的结构

    Tcp学习

    一文搞定 UDP 和 TCP 高频面试题! - 知乎

    查找单链表的中间节点

    快慢指针方法

    智能指针

    atuo_ptr:被废弃,会出现空指针访问

    unique_ptr:独占资源所有权的指针

            离开指针的作用域时自动释放内存

    share_ptr:共享资源所有权的指针

            对资源做引用计数,计数为0时自动释放。

            内存开销比裸指针和无自定义的unique_ptr对象略大

            维护的信息有两部分:指向共享资源的指针,指针控制信息的指针。

            共享的指针都要指向两个部分的指针。

    weak_ptr:共享资源的观察者,和share_ptr一起使用,不影响资源的生命周期

            weak是share的观察者,要用weak正在观察的资源,就可以提升为share

            如果share管理的对象被释放,weak_ptr就会变成nullptr

            只要weak对象还存在,就可以知道share资源还在不在,通过控制块观察对象还在不在

            不会增加计数,解决share思索的问题

    enable_shared_from_this:成员函数获取this的shared_ptr正确方法是继承

    1. class Bar : public std::enable_shared_from_this<Bar> {
    2. public:
    3. std::shared_ptr<Bar> GetSPtr() {
    4. return shared_from_this();
    5. }
    6. };
    7. auto sptr1 = std::make_shared<Bar>();
    8. assert(sptr1.use_count() == 1);
    9. auto sptr2 = sptr1->GetSPtr();
    10. assert(sptr1.use_count() == 2);
    11. assert(sptr2.use_count() == 2);
  • 相关阅读:
    如何在快应用中定义一个全局对象
    点云处理【一】(点云数据采集)
    Spring学习笔记3 Spring对IOC的实现
    自定义RunTimeException工具类
    coreldraw和ai哪个好用?有哪些区别
    【Leetcode】剑指Offer 30:包含min函数的栈
    Oracle 数据库中 查询时如何使用日期(时间)作为查询条件
    详解JS的四种异步解决方案:回调函数、Promise、Generator、async/await
    剪辑视频时PR播放卡顿不连贯|如何修复Premiere软件中播放太卡问题
    面试遇到算法题:实现LRU缓存
  • 原文地址:https://blog.csdn.net/m0_51407835/article/details/136205785