zoukankan      html  css  js  c++  java
  • 高效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都需要成对出现

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

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

    让自己熟悉标准程序库

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

    让自己熟悉开源代码

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

  • 相关阅读:
    DAY56
    DAY55
    DAY54
    DAY53
    DAY52
    DAY51
    DAY50
    spark1.1.0部署standalone分布式集群
    Storm流分组介绍
    Storm拓扑的并行度(parallelism)介绍
  • 原文地址:https://www.cnblogs.com/chusiyong/p/11453345.html
Copyright © 2011-2022 走看看