关闭

CPP开发者

所属频道 单片机 公众号精选
伯乐在线旗下账号,专注分享C/C++开发相关的技术文章和工具资源。
  • C/C 为什么要专门设计个 do…while?

    最初do...while的出现,更多的是作为循环控制流的一种语法糖。因为不论是while还是for循环,都是要先判断是否满足进入循环体的条件的。满足条件之后才能进入循环去执行循环体内的操作。而有些时候,第一次的执行逻辑我们不需要满足循环条件,也要执行。这时候就可以用do...wh...

  • TCP粘包 | 硬核图解

    事情从一个健身教练说起吧。李东,自称亚健康终结者,尝试使用互联网的模式拓展自己的业务。在某款新开发的聊天软件琛琛上发布广告。键盘说来就来。疯狂发送"李东",回车发送!,"亚健康终结者",再回车发送!还记得四层网络协议长什么样子吗?四层网络协议四层网络模型每层各司其职,消息在进入每...

  • 字节一面:“为什么网络要分层?每一层的职责、包含哪些协议?”

    这是一道我秋招面试字节遇到的真题。这篇文章我会首先结合我们日常的软件系统开发介绍 「“为什么网络要分层”?」 ,随后我会介绍 「“OSI7层模型”」 以及 「“TCP/IP4层模型”」。我会详细介绍目前广泛使用的 「“TCP/IP4层模型”」 包括每一层做的事情以及相关的协议介绍...

  • 图解 Linux  |  管道通信的原理?

    处于安全的考虑,不同进程之间的内存空间是相互隔离的,也就是说 进程A 是不能访问 进程B 的内存空间,反之亦然。如果不同进程间能够相互访问和修改对方的内存,那么当前进程的内存就有可能被其他进程非法修改,从而导致安全隐患。不同的进程就像是大海上孤立的岛屿,它们之间不能直接相互通信,...

  • 深入理解 glibc malloc:内存分配器实现原理

    ↓推荐关注↓前言堆内存(HeapMemory)是一个很有意思的领域。你可能和我一样,也困惑于下述问题很久了:如何从内核申请堆内存?谁管理它?内核、库函数,还是应用本身?内存管理效率怎么这么高?!堆内存的管理效率可以进一步提高吗?最近,我终于有时间去深入了解这些问题。下面就让我来谈...

  • 这篇 CPU Cache,估计也没人看

    ↓推荐关注↓无论你写什么样的代码都会交给CPU来执行,所以,如果你想写出性能比较高的代码,这篇文章中提到的技术还是值得认真学习的。另外,千万别觉得这些东西没用,这些东西非常有用,十多年前就是这些知识在性能调优上帮了我的很多大忙,从而跟很多人拉开了差距……基础知识首先,我们都知道现...

  • 25 张图详解交换机:秒懂二层交换机的 16 个问题

    学习计算机网络,其实就是学习网络协议。通过各种各样的网络协议,实现不同的网络需求。当然,网络协议不是凭空存在的,而是运行在网络设备上。搞懂网络协议,只是知道了技术原理。搞懂网络设备,才能把所学的网络知识用起来,实际解决我们的网络需求。下面我们来看看最常见的网络设备——交换机。1、...

    单片机
    2021-12-07
  • 冯·诺依曼 54 年传奇:上帝让他开挂?

    ↓推荐关注↓【导读】约翰·冯·诺依曼是20世纪最有影响力的人物之一。从原子弹,到计算机、再到量子力学、气候变化,你可能很难出对我们今天的世界和生活影响更大的科学家了。在20世纪的天才中,有几个杰出的人物:爱因斯坦、图灵、霍金,毫无疑问,冯·诺依曼也属于他们中的一个,尽管许多人不知...

    单片机
    2021-12-07
  • 深入理解虚拟化

    什么是虚拟化虚拟化技术是云计算的根基,在计算机技术中,虚拟化(技术)或虚拟技术(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。由此,打破实...

    单片机
    2021-12-07
  • 经典 | 图解 Linux 内存性能优化核心思想

    ↓推荐关注↓今天分享一篇内存性能优化的文章,文章用了大量精美的图深入浅出地分析了Linux内核slab性能优化的核心思想,slab是Linux内核小对象内存分配最重要的算法,文章分析了内存分配的各种性能问题(在不同的场景下面),并给出了这些问题的优化方案,这个对我们实现高性能内存...

  • 为什么空类大小是 1

    我们可能都知道,C中空类的大小是1。#include class EmptyA {};int main() {       std::cout 

    单片机
    2021-12-07
  • 糟糕程序员的 20 个坏习惯

    今天想聊一聊优秀程序员的基本素养。我想你肯定遇到过这样一类程序员:他们无论是写代码,还是写文档,又或是和别人沟通,都显得特别专业。每次遇到这类人,我都在想,他们到底是怎么做到的?随着工作时间的增长,渐渐地我也总结出一些经验,他们身上都保持着一些看似很微小的优秀习惯,但正是因为这些...

    单片机
    2021-12-07
  • 研究了一波 Android Native C 内存泄漏的调试

    最近在调试AndroidNative层的内存泄漏问题,整理了一些笔记,分享一下如何查看内存信息?在代码中打印,开启一个线程,间隔固定时间打印出当前内存信息【有好多种获取内存信息的API,这里只列出其中一种方式,亲测有效】private void startMemProfiler(...

  • 数据中心为什么需要大二层网络

    推荐关注↓数据中心为什么需要大二层网络?在开始之前,首先要明确一点,大二层网络基本上都是针对数据中心场景的,因为它实际上就是为了解决数据中心的服务器虚拟化之后的虚拟机动态迁移这一特定需求而出现的。对于普通的园区网之类网络而言,大二层网络并没有特殊的价值和意义(除了某些特殊场景,例...

  • 深入理解 Linux的 I/O 系统

    ↓推荐关注↓传统的SystemCallI/O在Linux系统中,传统的访问方式是通过write()和read()两个系统调用实现的,通过read()函数读取文件到到缓存区中,然后通过write()方法把缓存中的数据输出到网络端口。read(file_fd, tmp_buf, le...

    单片机
    2021-11-29
    I/O