花了一下午(或一天)在试图解决某个Bug,后来才知道解决方案很简单,当时就是没有想到。有个同事正好路过,看到你愁眉苦脸的,问你“怎么了呀?”“噢,是这样的。我遇到了一个问题,点击这个控件的时……”当你正准备和同事详细解释的时候,突然灵光一现,你话都没说完,就中断了和同事的倾诉,继...
导读:对于工程经验比较丰富的同学,并发应该也并不是陌生的概念了,但是每个人所理解的并发问题,却又往往并不统一,本文系统梳理了百度C工程师在进行并发优化时所作的工作。一、背景简单回顾一下,一个程序的性能构成要件大概有三个,即算法复杂度、IO开销和并发能力。由于现代计算机体系结构复杂...
最近在做一个项目,遇到一个问题,运行于ARM上的threadx在与DSP通信采用消息队列的方式传递消息(最终实现原理是中断共享内存的方式),在实际操作过程中发现threadx总是crash,于是经过排查,是因为传递消息的结构体没有考虑字节对齐的问题。随手整理一下C语言中字节对齐的...
socketfd长什么样子?什么是socketfd?粗糙的来讲,就是网络fd,比如我们最常见的C/S客户端服务端的编程模式,就是网络通信的一种方式。撇开底层和协议细节,网络通信和文件读写从接口上有本质区别吗?其实没啥区别,不就是读过来和写过去嘛,简称IO。我们先看一下socket...
近期遇到一个问题,简单点说,主机A上显示一条ESTABLISHED状态的TCP连接到主机B,而主机B上却没有任何关于主机A的连接信息,经查明,这是由于主机A和主机B的发送/接收缓冲区差异巨大,导致主机B进程退出后,主机A暂时憋住,主机B频繁发送零窗口探测,FIN_WAIT1状态超...
【导语】:开源的在线流程图绘制工具。简介Wireflow是一个免费的、开源的在线流程图绘制工具,用于创建漂亮的流程图,无需Photoshop技能。支持使用100多种自定义图形、可进行多人协作、权限分配、实时聊天等功能,并拥有丰富的功能组件库。Wireflow的诞生是为了在项目规划...
↓推荐关注↓前言:一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了。本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来探讨一下其中的知识。一、MySQL架构总览:架构最好看图,再配上必要的说明文字。下图...
↓推荐关注↓hi,大家好,由于移动互联网不断发展,导致网络流量徒增,推动着网络技术不断地发展,而CPU的运行频率基本停留在10年前的水平,为了迎接超高速网络技术的挑战,软件也需要大幅度创新,结合硬件技术的发展,DPDK(DataPlaneDevelopmentKit),一个以软件...
↓推荐关注↓从Linux内核3.15开始,您可能一直在关注内核社区中扩展的BerkeleyPacketFilter(eBPF)的开发,或者您可能仍然将BerkeleyPacketFilter与VanJacobson在1992年所做的工作联系起来。您可能已经使用BPF和tcpdum...
↓推荐关注↓1.PageCache1.1PageCache是什么?为了理解PageCache,我们不妨先看一下Linux的文件I/O系统,如下图所示:Figure1.Linux文件I/O系统上图中,红色部分为PageCache。可见PageCache的本质是由Linux内核管理的...
↓推荐关注↓看完后不再迷茫!在校学生的编程语言和数据结构的基础还不错,我认为应该在《操作系统》和《计算机体系结构》这两门课上下功夫,然后才去读编程方面的APUE、UNP等书。下面简单谈谈我对学习这两门课的看法和建议,都是站在服务端程序员的角度,从实用主义(pragmatic)的立...
socketfd长什么样子?什么是socketfd?粗糙的来讲,就是网络fd,比如我们最常见的C/S客户端服务端的编程模式,就是网络通信的一种方式。撇开底层和协议细节,网络通信和文件读写从接口上有本质区别吗?其实没啥区别,不就是读过来和写过去嘛,简称IO。我们先看一下socket...
hi,上次分析了RCU核心思想:深入理解RCU核心原理,后面说会分享一篇RCU的源码剖析,其实我这边已经总结得差不多:但自己思考了一下,发现大部分都是代码分析,这样很多人其实并不喜欢看源代码分析(代码有点多),所以可能其他方式更好,比如图解,我发现已经有人搞了这个,而且质量也挺高...