要不要再学学下面的文章?
聊聊 Go 的边界检查消除技术 (colobu.com)
在翻译的从慢速到SIMD一文中, SourceGraph工程师其中的一个优化就是边界检查消除(BCE,bounds check elimination)技术,同时他也抛给了读者一个问题:

为啥在使用 a[i:i+4:i+4] 而不是 a[i:i+4]?

本文第一部分先回答这个问题。 第二部分介绍更好的边界检查消除方法。 第三部分再全面梳理Go的边界检查消除技术。
by @技术头条 2024-03-21 23:00 查看详情
UTF-8 Overlong Encoding导致的安全问题 (www.leavesongs.com)
Overlong Encoding是将1个字节的字符,按照UTF-8编码方式强行编码成2位以上UTF-8字符的方法。

0xC0AE并不是一个合法的UTF-8字符,但我们按照UTF-8编码方式将其转换出来的,这就是UTF-8设计中的一个缺陷。

按照UTF-8的规范来说,我们应该使用字符可以对应的最小字节数来表示这个字符。那么对于点号来说,就应该是0x2e。但UTF-8编码转换的过程中,并没有限制往前补0,导致转换出了非法的UTF-8字符。

这种攻击方式就叫“Overlong Encoding”。
by @技术头条 2024-03-13 13:26 查看详情
Nginx proxy_pass到AWS ALB的504问题 (www.iots.vip)
我们的部分后端服务正在经历容器化的改造, 由于历史包袱,现网的网关等设施无法一次性迁移到 k8s 集群中, 因此使用 Nginx proxy_pass 转发到 AWS ALB 这样一个曲线救国的临时方案。

但是在使用时,我们发现一段时间后 Nginx 出现了 504 的错误,检查后端服务均是正常的,而单独访问 ALB 也是正常响应的,因此便有了此文。
by @技术头条 2024-03-13 13:22 查看详情
Nginx proxy_pass到AWS ALB的504问题 (www.iots.vip)
我们的部分后端服务正在经历容器化的改造, 由于历史包袱,现网的网关等设施无法一次性迁移到 k8s 集群中, 因此使用 Nginx proxy_pass 转发到 AWS ALB 这样一个曲线救国的临时方案。

但是在使用时,我们发现一段时间后 Nginx 出现了 504 的错误,检查后端服务均是正常的,而单独访问 ALB 也是正常响应的,因此便有了此文。
by @技术头条 2024-03-13 13:22 查看详情
一道面试题: Top K 问题 (colobu.com)
最近在招一个Go开发工程师,面试中时候我会问一个Top K的问题,这个问题是一个经典的面试题。
有时候我不会要求面试者写出答案,首先我听一下他的思想,如果写代码困难的话我都允许可以上网查标准库的文档,看看heap的用法。
相对来说比Redis的作者antirez的面试要轻松些了,他的面试题是要求面试者写出一个二叉搜索树。

这道题既然是经典题,很很多教科书或者算法网站上都有,比如leetcode也有,收录在Leetcode 算法题解精选一书中。
by @技术头条 2024-03-12 22:47 查看详情
JVM内存问题排查流程 (l1n.wang)
首先确认问题现象,可以通过服务状态,监控面板、日志信息、监控工具(VisualVM)等,确认问题类型:
1、内存使用率居高不下、内存缓慢增加、OOM等;
2、频繁GC:Full GC等;
发现问题不建议重启,留存状态。
by @技术头条 2024-03-12 22:26 查看详情
述职报告要点小记 (l1n.wang)
这是来自一线技术人的经验分享,如何写出让人眼前一亮的述职报告。
by @技术头条 2024-01-17 23:17 查看详情
Go单线程运行也会有并发问题 (colobu.com)
一个Go大佬群中严肃的讨论了一个问题:Go程序单线程多goroutine访问一个map会遇到并发读写panic么?

答案是肯定的,因为出现了这个问题所以大家才在群中讨论。

为什么呢?因为单线程意味着并行单元只有一个(多线程也可能并行单元只有一个),但是多goroutine意味着并发单元有多个,如果并发单元同时执行,即使是单线程,可能就会产生数据竞争的问题,除非这些goroutine是顺序执行的。
by @技术头条 2023-12-11 23:04 查看详情
解决Vite打包产生的hash缓存失效问题 (www.iszy.cc)
最近发现无论改多少内容,打包出来的所有文件的 hash 都会发生变化,这样就导致了浏览器缓存失效,每次都要重新加载所有文件,这样就导致了加载速度变慢,而且也浪费我服务器流量,姑且来看看能不能解决。
by @技术头条 2023-11-29 23:46 查看详情
32 位的操作系统也能使用超过4G的内存-PAE 技术简介 (www.addesp.com)
阅读本文章前请确认对X86下的分页机制有最基本的了解,否则将难以理解本文中提到的内容。本文介绍的内容均位X86架构下的PAE技术,而不是ARM架构下的LPAE技术,虽然两者从本质来说是一样的。
by @技术头条 2023-11-06 23:32 查看详情