错误码和异常处理
错误码和异常处理 程序出错几乎是必然事件,有可能是由于上游任务提供的数据就是错的。也有可能是程序内部实现,出现了bug。 对于程序出错的这种情况,需要有一套机制能够帮忙定位是什么错误,以及出现了错误之后如何处理的。 一般而言错误...
错误码和异常处理 程序出错几乎是必然事件,有可能是由于上游任务提供的数据就是错的。也有可能是程序内部实现,出现了bug。 对于程序出错的这种情况,需要有一套机制能够帮忙定位是什么错误,以及出现了错误之后如何处理的。 一般而言错误...
c++编程范式 1. RAII RAII,全称 Resource Acquisition Is Initialization(资源获取即初始化),是一种在 C++ 中常用的编程技巧和设计原则。 RAII 的主要思想是将资源的生命周...
内存序 1. 指令重排 指令重排可以是编译器的行为,也可以是处理器的行为. 编译器重排:为了优化程序性能,编译器在生成机器代码时可能会改变指令的顺序.例如,编译器可能会将两个没有数据依赖关系的指令交换顺序,或者将...
向量化是什么意思? 向量化的特性需要编译器和CPU都支持,让我们先来简单的了解一下向量化是如何工作的.假设我们有一个非常大的vector.简单的实现可以写成如下的方式: std::vector<int> v {1, 2...
性能优化 1. 这些是一些常见操作的成本的数量级的概念: 这些操作的精确耗时取决于许多因素,包括硬件/操作系统/网络条件等.以下是一些大致的估计: 一次内存访问:大约在100纳秒级别.这是从CPU访问主内存的时间...
二进制兼容 1. 什么是二进制兼容问题? 在升级库文件的时候,不必重新编译使用此库的可执行文件或其他库文件,并且程序的功能不被破坏. 2. 二进制兼容有什么好处? 保持二进制兼容性是为了确保软件的更新和升级过程更加平滑和无缝,...
c++和汇编 编译器会将c++转成汇编语言,学会和明白汇编语言的一些特性,有助于理解C++的设计。 1. 基本概念 1.1 汇编有哪些寄存器? 在 x86 架构的汇编语言中,有一些常用的寄存器,它们各自有不同的用途: E...