- 博客(9)
- 收藏
- 关注
原创 CPU cache line
在读github.com/valyala/bytebufferpool的源码时,发现这样一句:minBitSize = 6 // 2**6=64 is a CPU cache line sizeCPU cache line是什么东西?Wikipedia给出下面的解释:Data is transferred between memory and cache in blocks of ...
2020-05-15 13:40:02
341
原创 MAC地址是怎么保证全球唯一的
MAC地址是怎么保证全球唯一的Mac地址就是在数据链路层上使用的地址,通俗点说就是网卡的物理地址,现在的Mac地址一般都采用6字节48bit前24位由是生产厂家向IEEE申请的厂商地址(OUI:Organizationally Unique Identifier)。后24位(UAA)就由生产厂家自行定义。一个OUI最多有16777216个MAC地址,如果不够用,可以申请多个OUI,一些大厂,比如思科拥有几百个OUI。不过申请OUI是要花钱的,也出现过一些厂商为了省钱重用UAA造成MAC地址冲突。查
2020-05-15 13:37:31
4879
原创 Go语言中的排序
排序作为程序中最常用的功能之一,各种编程语言也都通过类库提供了现成的排序工具,在golang中就是sort包。并不是所有的东西都能够被排序,通常能够被排序的对象需要具有以下三个特征:是一个有限元素的集合集合中的元素可以交换相对位置集合中任意两个元素能够相互比较大小sort包定义了Interface接口来体现上述的三个特征。// A type, typically a collect...
2019-02-05 10:57:54
889
原创 Go程序打印stacktrace
runtime包中有一个函数func Caller(skip int) (pc uintptr, file string, line int, ok bool),可以用来获得在当前运行的goroutine栈上的函数调用信息(go文件名和行号)。参数skip表示要回溯的栈帧,例如:main() // skip = 3 |- fo...
2019-02-03 18:34:10
966
原创 Linux中的虚拟设备/dev/null、/dev/zero、/dev/random和/dev/urandom
Unix/Linux将每一个设备都当成一个文件,并放在/dev目录下。这些设备文件有的对应着一个真实存在的物理设备,有的则代表一个虚拟设备。我们可以通过访问文件来访问它们。下面介绍一些常用的设备:/dev/null空设备,也有人称它为黑洞。任何输入到这个“设备”的数据都将被直接丢弃。最常用的用法是把不需要的输出重定向到这个文件。例如:$ run.sh 1>/dev/null 2&gt...
2019-02-02 23:32:13
15115
原创 Golang实现百万并发
这篇文章源自Handling 1 Million Requests per Minute with Go。原文中的例子是一个HTTP服务器,将上传的Json文档写入亚马逊的简单存储服务(S3)。这是一个异步服务,不需要等到存储真正完成,收到服务后可以立刻返回。在这里我们用一个例子来类比上面的工作,有一条传送带(网络),源源不断的运来小球(来自客户端的请求),在远处有一个箱子(Amazon S3)...
2019-01-25 08:44:36
1930
1
原创 Linux的sys文件系统揭秘
之前一篇proc文件系统揭秘介绍了Linux的一个特殊的文件系统proc。接下来们介绍另一个重要的文件系统sys。与procfs类似,sysfs也是一个存在于内存中的“伪”文件系统。sys文件系统提供了另一个从用户空间通往内核空间的入口,Linux系统启动时把它挂载到/sys目录,通过访问这个目录下面的文件,可以获得各种的系统内核信息,例如设备、内核模块、文件系统等等。作为与内核交互的接口...
2019-01-19 23:58:09
3026
原创 Linux的proc文件系统揭秘
linux的proc文件系统(procfs)的全称是process information pseudo-filesystem(进程信息伪文件系统)。它是一个特殊的文件系统,通常在系统启动时被自动挂载到/proc目录,以一个多级的目录/文件的方式显示关于进程和其它的系统信息。proc文件系统中的绝大多数文件是只读的,但也有一些是可写的(例如/proc/sys)。proc文件系统提供了从用户空间...
2019-01-19 12:05:04
2734
原创 Linux内存解析
Linux内存解析系统内存我们在查看系统内存使用状况时,经常会常用free命令。下面是在一台centos物理机中执行free后的输出:# free total used free shared buff/cache available Mem: 131635324 12276220 104836264 17600...
2019-01-18 10:54:57
3373
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人