随笔分类 -  go

摘要:转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 这篇文章本来是要讲 Go Memory Ballast 以及 Go GC Tuner 来调整 GC 的策略,实现原理怎么样,效果如何。但是在写的过程中,发现 Go 1.19版本出了,有个新 阅读全文
posted @ 2022-09-11 22:33 luozhiyun 编辑
摘要:转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/677 我们平时在开发中肯定避不开的一个问题是如何在不可靠的网络服务中实现可靠的网络通信,其中 http 请求重试是经常用的技术。但是 Go 标准库 net/http 实 阅读全文
posted @ 2022-08-12 22:42 luozhiyun 编辑
摘要:文中项目代码位置:https://github.com/devYun/go-clean-architecture 转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/640 由于golang不像java一样有一个统一的编码 阅读全文
posted @ 2022-01-08 13:34 luozhiyun 编辑
摘要:本篇文章开篇会介绍一下Go-YCSB是如何使用,然后按照惯例会分析一下它是如何做基准测试,看看它有什么优缺点。 转载请声明出处哦~,本篇文章发布于luozhiyun的博客: https://www.luozhiyun.com/archives/634 最近我们在做数据库的技术选型,要做选型的话难免需 阅读全文
posted @ 2021-12-12 18:04 luozhiyun 编辑
摘要:转载请声明出处哦~,本篇文章发布于luozhiyun的博客: https://www.luozhiyun.com/archives/627 本文使用的go的源码1.17.3 前言 写这一篇文章的原因是最近在工作中有位小伙伴在写代码的时候直接用 Go 关键字起了一个 Goroutine,然后发生了空指 阅读全文
posted @ 2021-11-21 18:43 luozhiyun 编辑
摘要:本文基于 TiDB release-5.1进行分析,需要用到 Go 1.16以后的版本 我的博客地址:https://www.luozhiyun.com/archives/605 这篇文章我们看一下 TiDB 是插入数据是如何封装的,索引是如何维护的,如果插入的数据发生了冲突会如何处理,类似INSE 阅读全文
posted @ 2021-10-04 23:35 luozhiyun 编辑
摘要:本文基于 TiDB release-5.1进行分析,需要用到 Go 1.16以后的版本 转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/592 概述 整个 SQL 的执行过程包含以下几个部分: 首先是服务器在哪里接收到 阅读全文
posted @ 2021-09-19 23:46 luozhiyun 编辑
摘要:转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/584 前几篇文章讲解了如何实现一个高效的 HTTP 服务,这次我们来看一下如何实现一个永不不停机的 Go 程序。 前提 事情是这样的,在一天风和日丽的周末,我正在看 T 阅读全文
posted @ 2021-07-21 10:30 luozhiyun 编辑
摘要:转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/574 我们在上一篇文章中讲解了 Go HTTP 标准库的实现原理,这一次我找到了一个号称比net/http快十倍的Go框架 fasthttp,这次我们再来看看它有哪些优 阅读全文
posted @ 2021-07-17 21:59 luozhiyun 编辑
摘要:本篇文章来分析一下 Go 语言 HTTP 标准库是如何实现的。 转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/561 本文使用的go的源码1.15.7 基于HTTP构建的服务标准模型包括两个端,客户端(Client) 阅读全文
posted @ 2021-06-30 15:10 luozhiyun 编辑
摘要:转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/542 最近我也在学习如何在开发中让代码运行更加高效,然后在浏览各种优秀的日志设计的时候看到 uber 有一个叫 zap 的日志库引起了我的注意,它主要特性是对性能和内存 阅读全文
posted @ 2021-06-15 12:45 luozhiyun 编辑
摘要:转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/535 其实本来我是没打算去看 JSON 库的性能问题的,但是最近我对我的项目做了一次 pprof,从下面的火焰图中可以发现在业务逻辑处理中,有一半多的性能消耗都是在 J 阅读全文
posted @ 2021-06-11 14:48 luozhiyun 编辑
摘要:转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/531 文中代码位置: https://github.com/devYun/mycache 我在看一些优秀的开源库的时候看到一个有意思的缓存库 fastcache,在它的 阅读全文
posted @ 2021-06-09 22:31 luozhiyun 编辑
摘要:转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/527 每次放长假的在家里的时候,总想找点简单的例子来看看实现原理,这次我们来看看 Go 语言雪花算法。 介绍 有时候在业务中,需要使用一些唯一的ID,来记录我们某个数据 阅读全文
posted @ 2021-06-07 11:40 luozhiyun 编辑
摘要:转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/518 本文使用的go的源码 1.15.7 前言 函数调用类型 这篇文章中函数调用(Function Calls)中的函数指的是 Go 中的任意可执行代码块。在 《Go 阅读全文
posted @ 2021-06-03 12:33 luozhiyun 编辑
摘要:转载请声明出处哦~,本篇文章发布于luozhiyun的博客: https://www.luozhiyun.com/archives/523 本文使用的go的源码 1.15.7 介绍 defer 执行规则 多个defer的执行顺序为"后进先出LIFO " package main import ( " 阅读全文
posted @ 2021-05-31 11:02 luozhiyun 编辑
摘要:转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/513 本文使用的go的源码15.7 知识点 LInux 进程在内存布局 多任务操作系统中的每个进程都在自己的内存沙盒中运行。在32位模式下,它总是4GB内存地址空间,内 阅读全文
posted @ 2021-04-05 21:29 luozhiyun 编辑
摘要:转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/485 本文使用的go的源码15.7 这一次来讲讲基于信号式抢占式调度。 介绍 在 Go 的 1.14 版本之前抢占试调度都是基于协作的,需要自己主动的让出执行,但是这样 阅读全文
posted @ 2021-03-28 20:07 luozhiyun 编辑
摘要:转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/475 本文使用的 Go 的源码1.15.7 介绍 三色标记法 三色标记法将对象的颜色分为了黑、灰、白,三种颜色。 黑色:该对象已经被标记过了,且该对象下的属性也全部都被 阅读全文
posted @ 2021-03-25 15:00 luozhiyun 编辑
摘要:转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 本文使用的go的源码15.7,需要注意的是由于timer是1.14版本进行改版,但是1.14和1.15版本的timer并无很大区别 我在春节期间写了一篇文章有关时间轮的:https://w 阅读全文
posted @ 2021-03-07 14:27 luozhiyun 编辑