摘要: 原文地址:[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 阅读(342) 评论(0) 推荐(1) 编辑
摘要: 原文地址: https://blog.fanscore.cn/a/51/ 背景 最近接到一个需求,开发中使用了redis georadius命令取附近给定距离内的点。完工后对服务进行压测后发现georadius的性能比预期要差,因此我分析了georadius的源码,并对原始的实现方案进行了优化,总结 阅读全文
posted @ 2023-02-14 22:11 orlion 阅读(883) 评论(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 阅读(2381) 评论(2) 推荐(0) 编辑
摘要: 原文地址:https://blog.fanscore.cn/p/33/ 先说结论 uintptr 是一个地址数值,它不是指针,与地址上的对象没有引用关系,垃圾回收器不会因为有一个uintptr类型的值指向某对象而不回收该对象。 unsafe.Pointer是一个指针,类似于C的void *,它与地址 阅读全文
posted @ 2021-01-04 20:19 orlion 阅读(1002) 评论(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 阅读(1281) 评论(0) 推荐(0) 编辑
摘要: 原文地址:https://blog.fanscore.cn/p/26/ 友情提示:本文排版不太好,但内容简单,请耐心观看,总会搞懂的。 1. 定点数 对于一个无符号二进制小数,例如101.111,如果我们要用2个字节即16位来存储它,我们可以约定用高8位存储小数点前的数字,用低8位存储小数点后的数字 阅读全文
posted @ 2020-12-02 20:16 orlion 阅读(2812) 评论(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 阅读(916) 评论(2) 推荐(4) 编辑
摘要: 原文地址:https://blog.fanscore.cn/p/22/ 一、背景 公司当前有一个用户群的系统,核心功能是根据不同的条件组去不同的业务线中get符合条件的uid列表,然后存到redis中的bitmap中。 举个🌰,如果一个用户群中有两个用户: 3和7,即[3,7],用bitmap表示 阅读全文
posted @ 2020-10-23 22:23 orlion 阅读(1406) 评论(0) 推荐(0) 编辑
摘要: 语法的二义性 JavaCC不能分析所有EBNF描述的语法,因为EBNF描述的语法本质上具有二义性的情况。C语言中if语句用JavaCC的EBNF可以是如下描述: 作为符合上述规则的具体代码,可以由如下例子: 根据上面的规则分析下这段代码,直观的看上述代码表述的应该是这样的: 但是依据规则仔细分析下, 阅读全文
posted @ 2017-07-12 22:03 orlion 阅读(1306) 评论(0) 推荐(1) 编辑
摘要: 基于JavaCC的语法描述 使用JavaCC从token序列中识别出"语句" “表达式” “函数调用” 等语法单位的方法。 只要为JavaCC描述“语句” “表达式” “函数调用” 这样的语法单位各自是由怎样的token序列构成的,就能够对该语法进行分析(parse)。 例如:最简单的赋值表达式可以 阅读全文
posted @ 2017-07-05 21:10 orlion 阅读(5367) 评论(0) 推荐(0) 编辑