加载中
从golang函数栈空间分布看defer,你就不会再错了

defer 是golang 面试常会面的一个点,但是实在话, 这玩意没多大用,特别是高频下,很多厂的优化点之一就是defer。但是这玩意复杂起来,你确实不一定能都答对,到底怎么分析defer ,才能保证...

06/18 17:29
159
golang Mutex 实现上的几个巧妙的点

golang 的metux 的实现有几个点做法是非常有意思的,一个是底层数据结构上,用了平时很少用的位运算,第二个,用到了自旋,并做了自旋策略控制,最后是用了信号量控制协程。 首先是golang mu...

06/18 17:21
142
redis sds 实现的几个巧妙的想法

翻redis 源码的时候,发现有些用法真是很巧妙的,一个是指针变换,一个是内存管理策略,当然后者是有利弊的。 sds.h 就这两个数据类型,这里,能够sds 和 sdshdr 相互转化。对外的接口,参数...

06/13 16:59
473
golang 内存分析之字节对齐规则

c 的字节对齐很重要,因为c 支持指针运算。在golang 里面一般是慎用指针运算的,所以,这部分很少用,但是有些场景为了性能不得不用到指针运算,这个时候,知道golang 的内存分配就很重要了。...

06/12 22:40
11
golang sync.Pool 使用和源码分析

golang 在写高频服务的时候,如何解决gc问题,对象池是一个很有效果的方式,本文阐述下对象池的两种使用方式,和对对象池的源码分析,以及使用pool 的要点。golang 的对象池源码在避免锁竞争...

06/12 10:26
356
kubeadm1.7 搭建 Kubernetes 集群实操

使用kubernetes 搭建集群,因为网络等原因,对于那些初识k8s 的人,是一件很困难的事情,这里记录下整个集群搭建的过程和一些坑。 该文章后续仍在不断的更新修改中, 请移步到原文地址http:...

06/11 10:47
2
golang 高性能定时器之最小堆实现

业务中有很多定时任务,在规定时间内,不管是否完成都需要回调,明显,这种需要实现定时器,比较好的是时间轮和最小堆。这里介绍最小堆实现,这里就是个变相的topN 问题。 该文章后续仍在不断...

06/01 14:24
20
golang 最小堆排序实现

项目中有个模块要大量任务需要控制超时,内部实现了个定时器组件,底层就是基于最小堆算法和时间轮。最小堆算法挺简单的,一个完全二叉树,每个非叶子节点比其两个子节点都小,这就是个最小堆...

05/31 14:23
13
mysql 解决超卖问题的锁分析

解决超卖问题,常见的方式,利用redis 的原子性去递减;利用队列,队列入队计数。或者直接打到mysql 层。由mysql 保证不超卖,有几个玩法。利用属性不一样,挺有意思,记录下。 该文章后续仍...

05/25 13:33
15
nsq 源码分析之tcp协议部分

最近刚好看到其他几个项目有socket 编程,然后,想了下,在golang 中还没用过socket tcp 编程,于是看了一些im 的协议解析过程,都不是太满意,不是太通用,刚好看到nsq,发现nsq 这部分真是...

05/22 23:03
81
流媒体平台建设

流媒体系统主要向外提供的是离线转码,切片和缩略图服务,这些服务的特点是极度耗费资源的,所以平台的考量并不是在并发性,而是在资源的分配上,和流媒体本身的特性。 该文章后续仍在不断的...

05/19 11:35
10
线上状态码引发 bug 后的一些总结

公司最近出了个很严重的事故,不是bug,网关层返回给用户一些502 错误,导致被客户投诉。于是总结下。 该文章后续仍在不断的更新修改中, 请移步到原文地址http://dmwan.cc。 公司有个业务网...

05/10 20:35
12
实现支持批量 ping 的golang 库包

一个监控项目有个需求,会对一批域名进行探测,这里包括,丢包率,http 响应时间,探测频率大概时间是2min 一个周期。这里的域名大概有几百个,后期可能上千。由于是golang 写的调度和agent...

05/02 10:50
44
Ubuntu 编译ffmpeg 实现GPU 转码

前言,公司转码集群服务器资源有限,需要考虑GPU方案,本文记录下整个实现ffmpeg gpu 转码的过程。 该文章后续仍在不断的更新修改中, 请移步到原文地址http://dmwan.cc 环境: DISTRIB_ID=U...

04/17 17:00
3.1K
编译支持x264 x265 的ffmeg 并成功移植到docker

系统需要使用支h264, h265 的ffmpeg ,为了能够一次编译,到处执行,且不需要每次打docker 的时候都重新编译下ffmpeg,索性将整个ffmpeg 编译后打成个包,考到基础镜像中去,这里记录下整个过...

04/02 14:43
51
golang gc 优化思路以及实例分析

一个即将上线的go 写的高频服务,压测的时候发现 gc 特别高,高到10%-15% 左右了,本文记录下优化 gc 的过程和和思路。线上环境1.10. 该文章后续仍在不断的更新修改中, 请移步到原文地址htt...

04/01 22:08
37
golang 使用 rpm 包交付部署

线上交付代码需要打成rpm 包,然后呢,我给运维的时候,运维说了句,你有空教我下,怎么打rpm包,当时我就惊呆了,表情是这样的,😳。 该文章后续仍在不断的更新修改中, 请移步到原文地址...

03/31 22:47
23

没有更多内容

加载失败,请刷新页面

下一页

返回顶部
顶部