之前已经写过四篇关于Windows中如何查找内存泄露的方法,基本上可以帮你找到内存泄露的问题所在。查看系列文章请发送关键字 内存泄漏 获取。那么为什么要写这篇文章呢?本人在逛知乎的时候,看到一个问题,不乏很多高手的回答。我正好也写了几篇通过工具去分析内存泄露的文章,那先说说工具的...
什么是一致性协议?注意,今天是大白话随便聊聊,目的是直白的了解raft是什么,不用太抠理论定义。什么是一致性协议?字面理解就是让某些东西保持一致的协议嘛。什么是一致?大白话就是内容完全相同呗。以存储场景举例,假设有三个磁盘文件,大小为1M,如果三个文件1M的数据都完全相同,那么这...
我们说的ModernC,一般指的是C11及以后的标准,从C11开始,ModernC引入了大量的实用的特性,主要是两大方面,学习的时候也可以从这两大方面学习:增强或者改善的语法特性;新增的或者改善的STL库。我们来看几个具体的案例:案例1:统一的类成员初始化语法与std::init...
因为要对百万、千万、甚至是过亿的用户提供各种网络服务,所以在一线互联网企业里面试和晋升后端开发同学的其中一个重点要求就是要能支撑高并发,要理解性能开销,会进行性能优化。而很多时候,如果你对Linux底层的理解不深的话,遇到很多线上性能瓶颈你会觉得狗拿刺猬,无从下手。我们今天用图解...
↓推荐关注↓上篇:《重磅干货|五万字长文总结C/C知识(上)》网络层IP(InternetProtocol,网际协议)是为计算机网络相互连接进行通信而设计的协议。ARP(AddressResolutionProtocol,地址解析协议)ICMP(InternetControlMe...
↓推荐关注↓为什么要并发编程大型的软件项目常常包含非常多的任务需要处理。例如:对于大量数据的数据流处理,或者是包含复杂GUI界面的应用程序。如果将所有的任务都以串行的方式执行,则整个系统的效率将会非常低下,应用程序的用户体验会非常的差。另一方面,自上个世纪六七十年代英特尔创始人之...
↓推荐关注↓ASan,即AddressSanitizer,是一个适用于c/c程序的动态内存错误检测器,它由一个编译器检测模块(LLVMpass)和一个替换malloc函数的运行时库组成,在性能及检测内存错误方面都优于Valgrind,你值得拥有。一、适用平台在LLVM3.1版之后...
在程序出现bug的时候,最好的解决办法就是通过 GDB 调试程序,然后找到程序出现问题的地方。比如程序出现 段错误(内存地址不合法)时,就可以通过 GDB 找到程序哪里访问了不合法的内存地址而导致的。本文不是介绍GDB的使用方式,而是大概介绍GDB的实现原理,当然GDB是一个庞大...
↓推荐关注↓Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。部分层次结构如图1-1所示。一、linux内核内核是操作系统的核心,具有很多最基本功能,它负责...
Linux的内存管理可谓是学好Linux的必经之路,也是Linux的关键知识点,有人说打通了内存管理的知识,也就打通了Linux的任督二脉,这一点不夸张。有人问网上有很多Linux内存管理的内容,为什么还要看你这一篇,这正是我写此文的原因,网上碎片化的相关知识点大都是东拼西凑,先...
编程多条路,条条通罗马后台大佬后台路线都是面对后台服务器业务,比如web后台服务器,视频后台服务器,搜索后台服务器,游戏后台服务器,直播后台服务器,社交IM后台服务器等等,大部分代码和业务逻辑相关,想成为大佬,必须精通专业领域业务知识。但同时也存在一些通用的技术要求, 比如熟悉编...
之前整理过一篇C20新特性的文章全网首发!!C20新特性全在这一张图里了,里面提到过latch、barrier和semaphore,但是没有详细介绍过三者的作用和区别,这里详细介绍下。latch这个可能大多数人都有所了解,这就是我们经常会用到的CountDownLatch。用于使...