一直以来对interface的底层结构及内存布局不了解,只是单纯的转换和使用。今天就遇到了关于interface内存布局的问题,没有答上来,查了查资料和源码,记录一下。
- Mar 19, 2019...more
Redis持久化
Dec 26, 2018...more持久化是将程序数据在持久状态和瞬时状态间转换的机制。通俗的讲,就是瞬时数据(比如内存中的数据,是不能永久保存的)持久化为持久数据(比如持久化至数据库中,能够长久保存)
Redis内存淘汰策略
Nov 25, 2018...more当Redis被用作缓存的时候,当往Redis中添加新的数据,但是内存不足时,使用lru测试自动清除老的数据, 这几乎是所有缓存应用的默认特性. 事实上,LRU只是redis支持的淘汰策略的其中一种
AVL平衡二叉树中旋转
Oct 22, 2018...more最近面试被问到平衡二叉树如何保证平衡即失衡后是如何调整的, 之前也只是在leetcode上做过判断是否为平衡二叉树和树的深度搜索之类的题目,对AVL保证平衡的旋转方法及实现并不不了解,所以答不上来.回去后仔细了解了下,记录一下.
channel底层原理
Aug 16, 2018...moreGolang使用Groutine和channels实现了CSP(Communicating Sequential Processes)模型,channles在goroutine的通信和同步中承担着重要的角色。
Goroutine的调度
Jun 10, 2018...more一直以来对Go internals的都不了解,面试也经常会遇到goroutine的调度问题,当时并不是很清楚,回来以后查阅资料,现整理出来备忘.
Go文件操作
Apr 17, 2018...moreGo官方库的文件操作分散在多个包中,比如
os
、ioutil
包,发现已经有人2015年已经写了一篇这样的文章,写的非常好,我经常在需要使用文件方法的时候回过来查,所以翻译成了中文,记录一下.
原文 Working with Files in Go, 作者 NanoDano[算法]经典的Top-K问题
Apr 16, 2018...more什么是 Top K 问题?简单来说就是在一堆数据里面找到前 K 大(当然也可以是前 K 小)的数。
这个问题也是十分经典的算法问题,不论是面试中还是实际开发中,都非常典型。而这个问题其实也有很多种做法,你真的都懂了么?常见GC算法及Golang GC
Mar 20, 2018...moreGo语言能够支持实时的,高并发的消息系统,在高达百万级别的消息系统中能够将延迟降低到100ms以下,这一切很大一部分需要归功于Go的高效的垃圾回收系统.
Golang内存管理
Apr 19, 2017...moreGolang 的内存管理基于 tcmalloc,可以说起点挺高的。但是 Golang 在实现的时候还做了很多优化,我们下面通过源码来看一下 Golang 的内存管理实现。下面的源码分析基于 go1.8rc3。