摘要: 原文:blog.fanscore.cn/a/62/ 1. 背景 前一段时间公司上线了一套Go实现的推荐系统,上线后发现MMR层虽然只有纯计算但耗时十分离谱,通过pprof定位问题所在之后进行了优化,虽然降低了非常多但是我们认为其中还有优化空间。 可以看到日常平均耗时126ms,P95 360ms。 阅读全文
posted @ 2024-10-11 11:03 orlion 阅读(229) 评论(3) 推荐(2) 编辑
摘要: 原文地址https://blog.fanscore.cn/a/61/ 1. wssh 1.1 开发背景 公司内部的发布系统提供一个连接到k8s pod的web终端,可以在网页中连接到k8s pod内。实现原理大概为通过websocket协议代理了k8s pod ssh,然后在前端通过xterm.js 阅读全文
posted @ 2024-09-02 09:47 orlion 阅读(527) 评论(0) 推荐(3) 编辑
摘要: 原文地址:[https://blog.fanscore.cn/a/53/](https://blog.fanscore.cn/a/53/) # 1. 前言 本文是[与世界分享我刚编的转发ntunnel_mysql.php的工具](https://blog.fanscore.cn/a/47/)的后续, 阅读全文
posted @ 2023-05-24 22:02 orlion 阅读(583) 评论(0) 推荐(1) 编辑
摘要: 原文地址: https://blog.fanscore.cn/a/51/ 背景 最近接到一个需求,开发中使用了redis georadius命令取附近给定距离内的点。完工后对服务进行压测后发现georadius的性能比预期要差,因此我分析了georadius的源码,并对原始的实现方案进行了优化,总结 阅读全文
posted @ 2023-02-14 22:11 orlion 阅读(1238) 评论(2) 推荐(1) 编辑
摘要: 原文地址:https://blog.fanscore.cn/p/34/ 引言 本文以go1.14 darwin/amd64中的原子操作为例,探究原子操作的汇编实现,引出LOCK指令前缀、可见性、MESI协议、Store Buffer、Invalid Queue、内存屏障,通过对CPU体系结构的探究, 阅读全文
posted @ 2021-01-23 18:39 orlion 阅读(2798) 评论(2) 推荐(0) 编辑
摘要: 原文地址:https://blog.fanscore.cn/p/33/ 先说结论 uintptr 是一个地址数值,它不是指针,与地址上的对象没有引用关系,垃圾回收器不会因为有一个uintptr类型的值指向某对象而不回收该对象。 unsafe.Pointer是一个指针,类似于C的void *,它与地址 阅读全文
posted @ 2021-01-04 20:19 orlion 阅读(1081) 评论(0) 推荐(0) 编辑
摘要: 原文链接:https://blog.fanscore.cn/p/27/ 一、 函数调用相关指令 关于栈可以看下我之前的这篇文章x86 CPU与IA-32架构 在开始函数调用约定之前我们需要先了解一下几个相关的指令 1.1 push pushq 立即数 # q/l是后缀,表示操作对象的大小 pushl 阅读全文
posted @ 2020-12-16 09:55 orlion 阅读(1582) 评论(0) 推荐(0) 编辑
摘要: 原文地址:https://blog.fanscore.cn/p/26/ 友情提示:本文排版不太好,但内容简单,请耐心观看,总会搞懂的。 1. 定点数 对于一个无符号二进制小数,例如101.111,如果我们要用2个字节即16位来存储它,我们可以约定用高8位存储小数点前的数字,用低8位存储小数点后的数字 阅读全文
posted @ 2020-12-02 20:16 orlion 阅读(3689) 评论(0) 推荐(2) 编辑
摘要: 原文地址: https://blog.fanscore.cn/p/24/ 相信大家都听说过内存对齐的概念,不过这里还是通过一个现象来引出本篇话题。 一、求一个结构体的size 猜下下面这个结构体会占用多少字节 type S struct { B byte // Go中一个byte占1字节,int32 阅读全文
posted @ 2020-11-06 07:23 orlion 阅读(945) 评论(2) 推荐(4) 编辑
摘要: 原文地址:https://blog.fanscore.cn/p/22/ 一、背景 公司当前有一个用户群的系统,核心功能是根据不同的条件组去不同的业务线中get符合条件的uid列表,然后存到redis中的bitmap中。 举个🌰,如果一个用户群中有两个用户: 3和7,即[3,7],用bitmap表示 阅读全文
posted @ 2020-10-23 22:23 orlion 阅读(1481) 评论(0) 推荐(0) 编辑