- 博客(425)
- 资源 (3)
- 收藏
- 关注

原创 堆溢出崩溃分析Critical error detected c0000374
下面通过触发异常,崩溃堆栈分析,来看看异常发生的场景,以及如何来界定问题范围。
2021-09-11 10:03:10
3421

原创 栈溢出分析-stackoverfow-Segmentation fault: 11
stack:栈,也常常称作堆栈;stack vs heap:栈(堆栈)与堆,从stack翻译来看一叠,一摞,一堆,感觉和heap翻译差不多,不过heap表达的是凌乱的一堆,stack表达的也是一堆,但是一层层叠放的、一摞一摞的,有规律的一堆:-)
2021-08-22 20:01:47
186
原创 读写锁RWLock简单实现研究
读写锁在服务端程序开发时,用的还是比较广泛的一种锁,比较适合用于多读少写的场景。多读少写场景,可以减少加锁时间;因为能够对大多数的读场景减少加锁时间,也一定程度减少多线程程序的编写难度。
2023-01-15 21:19:19
342
原创 shared_ptr代码研究
shared_ptr被使用的很广泛,许多经典库使用share_ptr作为实现函数的接口类型使用。出share_ptr构建时:会构建出两个指针,一个用来指向维护的元素,一个用来指向元素的计数管理类对象。
2023-01-05 20:43:19
644
原创 安装使用clang-format
clang-format用于格式化代码,并能够指定采用的格式名称,例如google,microsoft,GNU代码样式格式等。
2022-12-18 17:58:45
324
原创 谈数据库查询涉及的存储效率
对于数据查询来说,主要的瓶颈就在存储IO,磁盘IO的读写速度低于内存处理、CPU处理数个数量级。是查询效率优化的中心,优化也都于围绕着它展开
2022-11-26 16:50:37
603
原创 leveldb的sstable-ldb解析
leveldb的sstable-ldb文件作为sorted-stable-table,是一个自成体系的单数据库文件,自身就包含了排序索引信息,以及相应的key,value信息;
2022-10-19 20:31:45
103
原创 关于技术面试思考
最近参与技术面试,作为技术面试官,面试之后思考:哪种情况属于职位匹配度比较高?哪种情况是面试者理想的职位?哪种情况是职位的合适人选?
2022-10-19 20:24:46
412
原创 多线程下类对象的服务承诺探讨
多线程下,哪些需要**类本身**处理资源共享冲突,哪些需要**类调用**方保证共享冲突。**类对象** 与 **调用者** 各自应该有哪些服务承诺?
2022-07-28 21:10:03
79
原创 linux下编译生成库函数的符号查看
不同于window下,在Linux下:编译.o文件、静态库.a文件、动态库.so文件、生成的可执行程序,都可以方便的查看函数符号。
2022-07-19 22:58:45
337
原创 pragma-pack语法与使用
pragma-pack通常是我们做涉及IO程序,或涉及通信程序时,会对结构体或类做的设定。通常我们考虑着网络通信时或io上尽可能节省字节长度。有时,也可能考虑cpu特点或考虑计算运行效率,对对齐方式做指定。.........
2022-07-02 22:30:30
233
原创 std::make_shared特点
std::make_shared的使用,从堆上内存分配的角度来看,对比直接使用std::shared_ptr构造,可以减少一次堆内存的申请。
2022-06-19 10:59:14
2657
原创 类构造函数与虚函数调用-汇编代码分析
C++中构造函数、析构函数、虚函数在调用时,汇编码是如何处理的,和我们平常理解上有没有什么不同?对于类的实例,在进行函数调用时,会传入this指针吗?通过哪种方式传入的?虚函数呢?虚函数表在哪呢,虚函数指针又如何初始化的呢?...
2022-05-23 00:11:15
183
原创 右值引用调用-汇编码分析
右值引用是在C++11时引入的一个重要的功能,并在stl库中提供了右值引用的函数,便于做值的转移。下面通过汇编码分析,来进一步理解右值引用从汇编角度来看,它的特点是有什么。
2022-05-21 10:58:36
222
原创 整数与浮点数比较-汇编码分析
整数之间比较我们通常比较好理解,按照4字节比较或8字节比较,无符号与有符号基于比较结果跳转命令差异,基本就涵盖了整数之间比较的规律。但对于整数与浮点数之间呢?是什么样的情况?整数要转成浮点数吗,还是整数和整数部分比较吗?还是浮点和浮点比较?8字节整数呢?和浮点比较时有没有差异?当时浮点浮点之间比较又是什么样子呢?
2022-05-14 21:39:14
828
原创 std::vector内存申请增长率
vector中的数组长度是如何增长的,倍增方式吗?初始vector内部带有空间吗,还是初始空间大小为0呢?从vector模板库实现中找一找,可以找到相关的线索。
2022-05-09 21:08:51
390
原创 std::vector内存清理
vector析构的时候,才会把申请的堆内存释放掉。但有时,我们希望早点清理掉它,而不是等到vector自动析构的时候,这时候我们就需要对它进行特殊处理了。
2022-05-09 20:43:41
1608
原创 整数类型比较-汇编码分析
对于整数比较时隐含的类型转换,有什么样的规律?汇编代码级别上,又有什么不同的地方?下面通过几种不同例子比较的汇编代码,来找一找规律;
2022-05-03 22:01:59
242
原创 比较指令-汇编码分析
汇编中常用的比较指令:对于整形,使用CMP;对于浮点型,单精度float使用COMISS,双精度double使用COMISD;
2022-05-02 21:06:27
1793
原创 数字类型初始化-汇编码分析
整型1字节/2字节/4字节/8字节分别是怎么初始化的,汇编命令有区别码?浮点型是如何初始化的呢,用的什么样的汇编命令?bool类型如果初始化,按1个字节还是1比特初始化呢?
2022-04-29 19:13:25
662
原创 线程可重入锁实现研究
线程可重入锁,通常用在某些资源加锁位置比较多,为了防止线程内重复加锁异常,使用的一种锁。可重入锁在windows下、linux下底层实现并不相同,下面探讨线程可重入锁的实现。
2022-04-17 10:32:13
298
原创 探讨conditon_variable的使用
std::conditon_variable的使用还是非常有趣的,它本身是和mutex一样,每个条件变量都是一种系统下唯一标识的资源。下面主要探讨为什么它的block等待需要一个std::unqiue_lock<std::mutex>做配合?
2022-04-05 19:59:02
796
原创 RocksDB说明文档
RocksDB是被facebook数据库引擎团队开发出来并维护着。它早期构建于Sanjay Ghemawat和Jeff Dean开发的LevelDB。它的库中代码构建了一个核心特点:快速的键值存储服务,特别适合于在flash驱动器上存储数据。它有一个日志结构归并数据库设计(LSM),并在写放大(WAF),读放大(RAF),空间放大(SAF)上提供灵活的折中处理。它具有多线程归并,从而让它更适合于在一个数据库中存储TB级的数据。
2022-04-05 19:39:25
1265
原创 进程间通信IPC-共享内存ShareMemory
作为本地进程间通信中非常高效的手段,共享内存是一个优点很明显,缺点也很明显的进程间数据传递的方式。核心优点:是通过地址映射直接共享访问内存,适合于大数据量的进程间传送。主要缺点:是没有进程间访问同步的约束,不解决进程间访问冲突,需要额外的同步机制来保证。
2022-03-04 00:03:11
814
原创 进程间通信IPC-Windows消息
windows消息机制提供了相对比较完备的:消息发送、读取、超时、同步异步、异常处理(消息队列满等)、消息清理等,这些可以比较全面的支持了线程内,进程间通信的需求。相比其它通信方法Socket、Pipe、ShareMemmory,消息机制还是完备了很多的,简化了使用的难度。
2022-03-02 05:50:33
366
原创 进程间通信IPC-信号量Semaphore
信号量是一个很有趣的系统同步方式,在linux下和windows下都有支持。它像是为典型的生产者消费者问题应运而生的。
2022-02-17 23:04:48
454
原创 C与C++运算符优先级个人解读
没有想到,在写了许多年代码之后,对几个运算符优先级竟然没有记对。还好平时多用括号,要不代码该出许多问题了。但优先级还是要能分的清楚的,毕竟看代码的时候,会涉及到未用括号分割的情况。
2022-01-16 12:07:34
448
原创 windows下程序崩溃生成dump文件
首先一个问题:什么是dump文件?尝试以个人理解来回答这个问题,dump是进程当前运行信息的导出,一个进程在操作系统中执行时,会首先把程序加载到内存中,并分配堆栈空间,进程空间;dump即是对这些信息的导出,会至少包括堆栈信息,寄存器信息等。
2022-01-16 11:40:43
1729
Mac上构建OpenGL红宝书上的triangles程序
2019-04-12
Python语言程序设计基础_课件PPT_嵩天
2018-12-01
编译原理-简单计算器
2014-08-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人