我们知道为了CPU之间减少“干扰”,每个CPU上都有一个任务队列。运行的过程种可能会出现有的CPU很忙,有的CPU很闲,如下图所示:为了避免这个问题的出现,Linux内核实现了CPU可运行进程队列之间的负载均衡。因为负载均衡是在多个核上的均衡,所以在讲解负载均衡之前,我们先看下多...
不论是在x86平台上,还是在嵌入式平台上,系统的启动一般都经历了bootloader到操作系统,再到应用程序,这样的三级跳过程。每一个相互交接的过程,都是我们学习的重点。这篇文章,我们仍然以x86平台为例,一起来看一下:从上电之后,系统是如何一步一步的进入应用程序的入口地址。bo...
↓推荐关注↓自2015年以来,QUIC协议开始在IETF进行标准化并被国内外各大厂商相继落地。鉴于QUIC具备“0RTT建联”、“支持连接迁移”等诸多优势,并将成为下一代互联网协议:HTTP3.0的底层传输协议,蚂蚁集团支付宝客户端团队与接入网关团队于2018年下半年开始在移动支...
众所周知,STL容器不是线程安全的。对于vector,即使写方(生产者)是单线程写入,但是并发读的时候,由于潜在的内存重新申请和对象复制问题,会导致读方(消费者)的迭代器失效。实际表现也就是招致了coredump。另外一种情况,如果是多个写方,并发的push_back(),也会导...
〇、本文写作背景大约2年前,在腾讯内网,笔者和很多同事讨论了GPU虚拟化的现状和问题。从那以后,出现了一些新的研究方向,并且,有些业界变化,可能会彻底颠覆掉原来的一些论断。但这里并不是要重新介绍完整的GPU虚拟化的方案谱系。而是,我们将聚焦在英伟达GPUCUDA计算领域,介绍下我...
本篇将图文并茂教你如何使用抓包工具,并在文章最后教大家如何得到FTP的用户名密码。一、安装本文为大家介绍一个非常好用的抓包工具,科来。下载地址:http://www.colasoft.com.cn/下载科莱下载完毕,双击直接下一步即可安装。二、界面介绍双击桌面图标:科来启动界面如...
众所周知,C并不是一种流行的Web开发语言,究其原因有很多:语言门槛高、使用难度大、开发效率低......话虽如此,但随着Emscripten的成熟,未来C在Web方面会发挥更大的潜能,尤其是游戏、3D应用等方面。有关CWeb相关的框架有不少,下面进行了简单的整理,并按照“Sta...
↓推荐关注↓今天分享一篇内存性能优化的文章,文章用了大量精美的图深入浅出地分析了Linux内核slab性能优化的核心思想,slab是Linux内核小对象内存分配最重要的算法,文章分析了内存分配的各种性能问题(在不同的场景下面),并给出了这些问题的优化方案,这个对我们实现高性能内存...
C语言由于在构建系统软件领域的关键作用而被誉为“皇冠上的明珠”。随着C20国际标准的正式发布,C进入全新的里程碑。来自Google、微软、腾讯、华为等业界专家纷纷表示,包括C20在内的现代C语言将为系统级软件的开发、构建、设计带来重要且深远的影响。为此,我们特邀C之父、美国工程院...
我是一个浏览器,每到夜深人静的时候,主人就打开我开始学习。为了不让别人看到浏览记录,主人选择了“无痕模式”。但网络中总是有很多坏人,他们通过抓包截获我和服务器的通信,主人干了什么,请求了什么数据全被他们知道了!光窃听也就罢了,他们还经常篡改内容,在网页里面插入诱人的小广告,真是太...
最新合并的代码是GNU C标准库增加对兆芯CPU的检测支持,根据提交者的邮箱判断,提交者应该是兆芯CPU厂商的工程师。
故事起因无意间用vim打开了一个10G的文件,改了一行内容,:w保存了一下,慢的我哟,耗费的时间够泡几杯茶了。这引起了我的好奇,vim打开和保存究竟做了啥?vim—编辑器之神vim号称编辑器之神,以极其强大的扩展性和功能闻名。vi/vim作为标准的编辑器存在于Linux的几乎每一...
一、前言这篇文章来聊聊大名鼎鼎的GDB,它的豪门背景咱就不提了,和它的兄弟GCC一样是含着金钥匙出生的,在GNU的家族中的地位不可撼动。相信每位嵌入式开发工程师都使用过gdb来调试程序,如果你说没有用过,那只能说明你的开发经历还不够坎坷,还需要继续被BUG吊打。我们都知道,在使用...
↓推荐关注↓1.线程池原理我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可...