2025-1-11 周记 0x005
· Life
分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称 ARTS)
Algorithm
https://xmchx.vercel.app/post/kata/aoc2024#day-12-garden-groups
Review
JavaScript Benchmarking Is a Mess
提出一些问题:如Caching, JIT删除无用代码,很难获取到精确的时间等等。
Simple defer, ready to use
https://gustedt.wordpress.com/2025/01/06/simple-defer-ready-to-use/
主要基于GCC的能力,C++中没有意义,因为用Namespace\RAII可以做到
Tip
为 Kyanos 提供RocketMQ协议支持
Kyanos is a networking analysis tool using eBPF. It can visualize the time packets spend in the kernel, capture requests/responses, makes troubleshooting more efficient.
https://github.com/hengyoush/kyanos
Type-Driven API Design in Rust
这个视频分享有意思,看完第二天自己重新实现一下。Code
TinyUFO
读Pingora代码了解到的
TinyUFO is a fast and efficient in-memory cache. It adopts the state-of-the-art S3-FIFO as well as TinyLFU algorithms to achieve high throughput and high hit ratio as the same time.
Kubeedge 提供的自动化Cherry Pick
主要是提供了一个Shell脚本,可以快速方便的,将某个PR快速合到某个对应的release分支下,自动创建新对应release的PR。
核心就是使用这个工具 hub - A command-line tool that makes git easier to use with GitHub.
这里有个坑,默认是使用Github密码的,但是会有Github Rate Limit的限制,会出错。
解决方案就是使用TOKEN,export GITHUB_TOKEN=<your-personal-access-token>
, token需要 repo\write:org\read:user
权限。
Splice 系统调用
splice系统调用,用于在两个文件描述符之间移动数据,而不需要将数据复制到用户空间。这种方法可以提高性能,特别是在处理大文件时,因为它避免了不必要的数据复制。