在平时资料中,我们常看到:new和delete,new[]和delete[]一定要配对使用!也有人说:有时候不配对使用也不会出现问题。也许你也是只知其然,不知其所以然,然而我也有点懵了。那就研究下这个问题:首先,看下这段配对使用代码:#include #include using...
之前整理过一篇C20新特性的文章全网首发!!C20新特性全在这一张图里了,里面提到过latch、barrier和semaphore,但是没有详细介绍过三者的作用和区别,这里详细介绍下。latch这个可能大多数人都有所了解,这就是我们经常会用到的CountDownLatch。用于使...
↓推荐关注↓Qt6.2正式发布,它是自我们开始迈向全新Qt主要版本以来,一直在努力的版本。Qt6.2得益于我们为Qt6所做的所有架构升级,并包含了Qt5.15中几乎所有深受喜爱的附加模块。Qt6.2也是Qt公司为商业版客户提供的Qt6系列中第一个长周期支持版。在我们升级到Qt6的...
↓推荐关注↓转自:量子位 公众号(QbitAI)程序bug也能负负得正吗?还真可以。比如程序员们再熟悉不过的排序算法,通过两个“bug”居然能歪打正着,实在令人匪夷所思。请看这位程序员写的数组升序排序代码:for i = 1 to n do for j = 1 to n do ...
通过/proc文件系统探究虚拟内存我们会通过/proc文件系统找到正在运行的进程的字符串所在的虚拟内存地址,并通过更改此内存地址的内容来更改字符串内容,使你更深入了解虚拟内存这个概念!这之前先介绍下虚拟内存的定义!虚拟内存虚拟内存是一种实现在计算机软硬件之间的内存管理技术,它将程...
↓推荐关注↓文章目录一、QUIC如何解决TCP的队头阻塞问题?1.1TCP为何会有队头阻塞问题1.2QUIC如何解决队头阻塞问题1.3QUIC没有队头阻塞的多路复用二、QUIC如何优化TCP的连接管理机制?2.1TCP连接的本质是什么2.2QUIC如何减少TCP建立连接的开销2....
↓推荐关注↓1.线程池原理我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可...
↓推荐关注↓大家好,今天给大家分享一篇关于Cache的硬核的技术文,基本上关于Cache的所有知识点都可以在这篇文章里看到。关于Cache这方面内容图比较多,不想自己画了,所以图都来自《ComputerArchitecture:AQuantitativeApproach》。这是一...
↓推荐关注↓ASan,即AddressSanitizer,是一个适用于c/c程序的动态内存错误检测器,它由一个编译器检测模块(LLVMpass)和一个替换malloc函数的运行时库组成,在性能及检测内存错误方面都优于Valgrind,你值得拥有。一、适用平台在LLVM3.1版之后...
↓推荐关注↓Qt6.2正式发布,它是自我们开始迈向全新Qt主要版本以来,一直在努力的版本。Qt6.2得益于我们为Qt6所做的所有架构升级,并包含了Qt5.15中几乎所有深受喜爱的附加模块。Qt6.2也是Qt公司为商业版客户提供的Qt6系列中第一个长周期支持版。在我们升级到Qt6的...
众所周知,STL容器不是线程安全的。对于vector,即使写方(生产者)是单线程写入,但是并发读的时候,由于潜在的内存重新申请和对象复制问题,会导致读方(消费者)的迭代器失效。实际表现也就是招致了coredump。另外一种情况,如果是多个写方,并发的push_back(),也会导...
今天给大家讲讲衡量网络性能的四大指标:带宽、时延、抖动、丢包。如何客户需要我们去评估一个网络的性能,我们就可以从这四方面去进行评估。带宽1、带宽概念:带宽在百度百科中定义:在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。计算机网络的带宽是指网络可通过的最高数据率,即...
↓推荐关注↓前言测试是软件开发过程中一个必须的环节,测试确保软件的质量符合预期。对于工程师自己来说,单元测试也是提升自信心的一种方式。直接交付没有经过测试的代码是不太好的,因为这很可能会浪费整个团队的时间,在一些原本早期就可以发现的问题上。而单元测试,就是发现问题一个很重要的环节...
在我们日常工作中,为了验证开发的功能,比如:文件上传功能或者算法的处理效率等,经常需要一些大文件进行测试,有时在四处找了一顿之后,发现竟然没有一个合适的,虽然Linux中也有一些命令比如:vim、touch等可以创建文件,但是如果需要一个100G或者1T的大文件,这些命令就显得力...
锁是一个常见的同步概念,我们都听说过加锁(lock)或者解锁(unlock),当然学术一点的说法是获取(acquire)和释放(release)。恰好pthread包含这几种锁的API,而C11只包含其中的部分。接下来我主要通过pthread的API来展开本文。mutex(互斥量...