
线程和协程
超线程技术 概述 现代CPU通常确实在物理核心的基础上引入逻辑核心,例如通过超线程(Hyper-Threading)技术,一个物理核心能够处理两个线程 使得操作系统和应用程序认为该CPU拥有的核心数量翻倍 不过,CPU的逻辑核心和线程的概念在软件开发中存在一些区别 逻辑核心更偏向...
超线程技术 概述 现代CPU通常确实在物理核心的基础上引入逻辑核心,例如通过超线程(Hyper-Threading)技术,一个物理核心能够处理两个线程 使得操作系统和应用程序认为该CPU拥有的核心数量翻倍 不过,CPU的逻辑核心和线程的概念在软件开发中存在一些区别 逻辑核心更偏向...
变量的读取 概述 一般来说,读取一个变量的内容,是从内存里面去取的 但是,在编译时启用优化选项后,编译器可能会对代码进行优化,以提高执行效率 优化手段-寄存器 一个常见的优化手段就是将一些频繁访问的变量存储在CPU寄存器中,而不是每次都从内存中读取 这种优化可以大幅度提升程序的性...
概述 涉及初始化顺序的目标包括 静态成员变量 全局成员变量 类的成员变量 静态成员变量和全局成员变量 概述 静态成员变量 包括全局静态成员 也包括类的静态成员 顺序结论 全局变量 和 静态成员变量 在程序启动时初始化,具体顺序是以 编译单元 为单位 不同编译单元中的变量初始化顺序...
shared_ptr类 简述内存的分配: 静态内存用来保存局部的static对象,类static数据成员,以及定义在函数之外的变量。 栈内存用于保存定义在函数内的非static对象。 分配在静态内存或者栈内存中的对象,由编译器自动创建或销毁。 对于栈对象,仅在其定义的程序块允许时...
指针 概述 通常所说的“指针”就是指 指针类型的变量,它保存了 内存中另一个变量的地址 通过这个指针保存的地址,我们可以 间接访问 指针指向的内存位置的数据 这个过程称为 解引用(dereferencing) 示例 *ptr 表示 通过指针 ptr 访问其保存的地址所指向的数据 ...
关于对象 封装的布局成本 普通函数没有增加成本 成员函数虽然含在类的声明之内,却不出现在对象之中 虚机制会增加成本 虚函数机制用来支持一个有效率的运行期绑定 虚基类用来实现多次出现在机场体系中的基类,有一个单一而被共享的实例 类成员概述 类数据成员 静态 非静态 类成员函数 静态...
概述 Breakpad 客户端库负责监控应用程序是否发生崩溃(异常)、在崩溃发生时通过生成转储来处理这些崩溃 并提供将转储上传到崩溃报告服务器的方法 客户端 概述 Breakpad 客户端主要负责在应用程序崩溃时捕获崩溃信息,并生成 minidump 文件 该 minidump ...
shared_ptr 概述 C++ 标准库中的一种智能指针,用于自动管理动态分配的对象的生命周期 主要机制是通过引用计数(Reference Counting)来追踪有多少个 shared_ptr 实例共享管理同一个对象 当引用计数降为零时,对象会被自动释放 内部组成 指向管理对...
简介 组件对象模型(COM)是一个独立于平台的分布式面向对象的系统,用于创建可交互的二进制软件组件 是OLE(复合文档),ActiveX(Internet组件)等的基础技术 不是一种语言,而是一种标准,用于创建运行时进行交互的可重用的软件库,无须编译到应用程序中,即可使用COM库...
概述 Pybind11是一个用于将C++代码与Python绑定的轻量级头文件库,使得可以轻松地在Python中调用C++函数和类 还可以让C++代码调用Python的功能和库 理解 可以把Pybind11理解为一个中间层,提供了在C++中调用Python代码或在Python中调用...
搜索当前标签