Go语言的运行时管理了调度,垃圾回收,和协程的运行时环境。这里我们只讨论调度器。
作者:Minho 更新时间:2019-07-15 02:53:06
本文基于go1.11.2,不同版本Go的内存管理可能存在差别,比如1.9与1.11的mheap定义就是差别比较大的,后续看源码的时候,请注意你的go版本,但无论你用哪个go版本,这都是一个优秀的资料,因为内存管理的思想和框架始终未变。
作者:Minho 更新时间:2019-07-09 08:32:50
作者:Minho 更新时间:2019-07-09 07:51:34
啥是HTTPS? 说白了就是HTTP Over SSL。HTTP呢,就是我们平时上网时,浏览器和服务器之间传输数据的一项协议。普通情况下,浏览器发送的请求会经过若干个网络中间节点,最后到达服务器;然后服务器又将请求的数据经过若干个网络中间节点发送回给浏览器,这时候浏览器就能够显示我们想要看到的页面。
作者:Minho 更新时间:2019-06-17 08:00:05
从事服务端开发,少不了要接触网络编程。epoll 作为 Linux 下高性能网络服务器的必备技术至关重要,nginx、Redis、Skynet 和大部分游戏服务器都使用到这一多路复用技术。 epoll 很重要,但是 epoll 与 select 的区别是什么呢?epoll 高效的原因是什么?
作者:Minho 更新时间:2019-05-22 11:08:59
Go语言内置运行时(就是runtime),抛弃了传统的内存分配方式,改为自主管理。这样可以自主地实现更好的内存使用模式,比如内存池、预分配等等。这样,不会每次内存分配都需要进行系统调用。
作者:Minho 更新时间:2019-03-13 08:06:12
数组和切片是 Go 语言中常见的数据结构,很多刚刚使用 Go 的开发者往往会混淆这两个概念,数组作为最常见的集合在编程语言中是非常重要的,除了数组之外,Go 语言引入了另一个概念 — 切片,切片与数组有一些类似,但是它们的不同之处导致使用上会产生巨大的差别。
作者:Minho 更新时间:2019-02-21 03:08:42
Redis 作为一种 KV 缓存服务器,有着极高的性能,相对于 Memcache,Redis 支持更多种数据类型,因此在业界应用广泛。
作者:Minho 更新时间:2019-02-20 09:01:32
进程间通信(IPC)的一般目的,大概有数据传输、共享数据、通知事件、资源共享和进程控制等。但是我们知道,对于每一个进程来说这个进程看到属于它的一块内存资源,这块资源是它所独占的,所以进程之间的通信就会比较麻烦,原理就是需要让不同的进程间能够看到一份公共的资源。
作者:Minho 更新时间:2018-10-30 08:00:51
I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间。
作者:Minho 更新时间:2018-10-30 06:33:49