关闭

CPP开发者

所属频道 单片机 公众号精选
  • 程序员的最佳调试神器是什么?

    花了一下午(或一天)在试图解决某个Bug,后来才知道解决方案很简单,当时就是没有想到。有个同事正好路过,看到你愁眉苦脸的,问你“怎么了呀?”“噢,是这样的。我遇到了一个问题,点击这个控件的时……”当你正准备和同事详细解释的时候,突然灵光一现,你话都没说完,就中断了和同事的倾诉,继...

  • 百度 C  工程师的那些极限优化(并发篇)

    导读:对于工程经验比较丰富的同学,并发应该也并不是陌生的概念了,但是每个人所理解的并发问题,却又往往并不统一,本文系统梳理了百度C工程师在进行并发优化时所作的工作。一、背景简单回顾一下,一个程序的性能构成要件大概有三个,即算法复杂度、IO开销和并发能力。由于现代计算机体系结构复杂...

    单片机
    2021-09-06
  • Linux 字节对齐的那些事

    最近在做一个项目,遇到一个问题,运行于ARM上的threadx在与DSP通信采用消息队列的方式传递消息(最终实现原理是中断共享内存的方式),在实际操作过程中发现threadx总是crash,于是经过排查,是因为传递消息的结构体没有考虑字节对齐的问题。随手整理一下C语言中字节对齐的...

    单片机
    2021-09-06
  • 深入理解 Linux socket

    socketfd长什么样子?什么是socketfd?粗糙的来讲,就是网络fd,比如我们最常见的C/S客户端服务端的编程模式,就是网络通信的一种方式。撇开底层和协议细节,网络通信和文件读写从接口上有本质区别吗?其实没啥区别,不就是读过来和写过去嘛,简称IO。我们先看一下socket...

    单片机
    2021-09-06
  • TCP 的 FIN_WAIT1 状态理解:深入理解 TCP

    近期遇到一个问题,简单点说,主机A上显示一条ESTABLISHED状态的TCP连接到主机B,而主机B上却没有任何关于主机A的连接信息,经查明,这是由于主机A和主机B的发送/接收缓冲区差异巨大,导致主机B进程退出后,主机A暂时憋住,主机B频繁发送零窗口探测,FIN_WAIT1状态超...

    单片机
    2021-09-03
  • 不会 PS 也能用,这个开源流程图绘制工具支持 100 多种自定义图形

    【导语】:开源的在线流程图绘制工具。简介Wireflow是一个免费的、开源的在线流程图绘制工具,用于创建漂亮的流程图,无需Photoshop技能。支持使用100多种自定义图形、可进行多人协作、权限分配、实时聊天等功能,并拥有丰富的功能组件库。Wireflow的诞生是为了在项目规划...

    单片机
    2021-09-03
  • 步步深入:MySQL 架构总览-

    ↓推荐关注↓前言:一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了。本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来探讨一下其中的知识。一、MySQL架构总览:架构最好看图,再配上必要的说明文字。下图...

    单片机
    2021-09-03
  • 深入理解 DPDK 程序设计:Linux 网络2.0

    ↓推荐关注↓hi,大家好,由于移动互联网不断发展,导致网络流量徒增,推动着网络技术不断地发展,而CPU的运行频率基本停留在10年前的水平,为了迎接超高速网络技术的挑战,软件也需要大幅度创新,结合硬件技术的发展,DPDK(DataPlaneDevelopmentKit),一个以软件...

    单片机
    2021-09-03
  • BPF、eBPF、XDP 和 Bpfilter …… 这些东西是什么?

    ↓推荐关注↓从Linux内核3.15开始,您可能一直在关注内核社区中扩展的BerkeleyPacketFilter(eBPF)的开发,或者您可能仍然将BerkeleyPacketFilter与VanJacobson在1992年所做的工作联系起来。您可能已经使用BPF和tcpdum...

    单片机
    2021-09-03
  • 深入理解 Linux 的 Page Cache

    ↓推荐关注↓1.PageCache1.1PageCache是什么?为了理解PageCache,我们不妨先看一下Linux的文件I/O系统,如下图所示:Figure1.Linux文件I/O系统上图中,红色部分为PageCache。可见PageCache的本质是由Linux内核管理的...

    单片机
    2021-09-03
    ge
  • Linux C 服务器端这条线怎么走?

    ↓推荐关注↓看完后不再迷茫!在校学生的编程语言和数据结构的基础还不错,我认为应该在《操作系统》和《计算机体系结构》这两门课上下功夫,然后才去读编程方面的APUE、UNP等书。下面简单谈谈我对学习这两门课的看法和建议,都是站在服务端程序员的角度,从实用主义(pragmatic)的立...

    单片机
    2021-09-03
  • Linux fd 系列 — socket fd 是什么?

    socketfd长什么样子?什么是socketfd?粗糙的来讲,就是网络fd,比如我们最常见的C/S客户端服务端的编程模式,就是网络通信的一种方式。撇开底层和协议细节,网络通信和文件读写从接口上有本质区别吗?其实没啥区别,不就是读过来和写过去嘛,简称IO。我们先看一下socket...

    单片机
    2021-09-03
  • 深入理解零拷贝技术

    ↓推荐关注↓hi,大家好,内存拷贝是比较耗时操作,零拷贝是常用优化手段,今天分享的文章就是Linux系统零拷贝技术,Kafka和MySQL开源组件都用到这个核心技术,希望大家可以掌握。DMA与零拷贝技术注意事项:除了DirectI/O,与磁盘相关的文件读写操作都有使用到pagec...

    单片机
    2021-09-03
  • C 代码简化之道

    极简主义者,崇尚简洁明快的代码风格,这也可能是不喜欢Java全家桶的原因……当然我说的简洁是要建立在不降低可读性的前提下,即不影响代码本身的表现力。如果为求代码精简而让代码晦涩艰深同样不可取。本文会介绍10个条款。1.善用emplaceC11开始STL容器出现了emplace(置...

    单片机
    2021-09-03
  • 深入理解RCU | RCU源码剖析

    hi,上次分析了RCU核心思想:深入理解RCU核心原理,后面说会分享一篇RCU的源码剖析,其实我这边已经总结得差不多:但自己思考了一下,发现大部分都是代码分析,这样很多人其实并不喜欢看源代码分析(代码有点多),所以可能其他方式更好,比如图解,我发现已经有人搞了这个,而且质量也挺高...

    单片机
    2021-09-03