• 高效C++:定制new和delete


      内存的申请和释放,C++从语言级别提供了new和delete关键字,因此需要了解和熟悉其中的过程。

    了解new-handler的行为

    • set_new_handler可以指定一个函数,当申请内存失败时调用,如果调用指定的函数后,内存还是不够,就会循环调用

    • 使用set_new_handler指定函数一定要小心

    了解new和delete的合理替换时机

    • 定制new和delete是有必要的

    编写new和delete时需要固守常规

    • operator new应该内含一个无穷循环,并在循环中尝试分配内存,如果无法满足就需要调用new-handler(里面的操作可能释放内存),且有能力处理0字节的申请

    • operator delete的入参为NULL时,不做任何处理

    提供了placement new就需要提供placement delete

    • 任何情况下new和delete都需要成对出现

    不要轻易忽略编译器的警告

    • 记住一句话:现在忽略的告警,就是你将来通宵的伏笔

    让自己熟悉标准程序库

    • 直接撸源码,你将受益无穷

    让自己熟悉开源代码

    • 多阅读开源代码,只有好处没有坏处

  • 相关阅读:
    Webpack打包原理
    Vue——VNode
    Vue——响应式原理
    HTTP2.0——头部压缩
    HTTP2.0
    浏览器打开2个页面会有几个进程?
    计算机网络——TCP如何保证可靠性
    操作系统——进程之间的通信
    前端路由hash与history下
    前端路由hash与history上
  • 原文地址:https://www.cnblogs.com/chusiyong/p/11453345.html
Copyright © 2020-2023  润新知