linux 动态内存管理:brk/mmap/madvise 等
1. brk/sbrk syscall 要介绍 brk,需要先引入 program break 这一概念。它可以直接理解为是虚存中的一个指针,指向堆的终点。进程初始化时,由于堆大小为 0,故 program break 直接指向 .bss 段的终点。 brk/sbrk syscall 的作用就是移动 program break 的位置。如果向高地址…
杂谈:数据库相关经验
1. 不要 select * 对于复杂的表,磁盘 IO 大,浪费带宽 可能无法充分利用索引。参考 之前的 mysql 笔记 的第 24 节 兼容不佳,未来新增列以后,可能影响到 sql 结果解析。 2. 多个 insert 的部分用一行 sql 解决 虽然会写一些比较恶心的 sql 字符串拼接,但是也有收益。这里直接参考 GPT: Reduced …
clap 笔记
1. ValueEnum 当我们需要使用自定义的枚举类型作为参数时,我们可以使用 clap::clap_derive::ValueEnum。 1.1 derive 方式 直接上例子: use clap::{clap_derive::ValueEnum, Parser}; #[derive(Debug, Clone, ValueEnum)] enum…
Linux 杂记
1. ipvsadm LVS 的管理命令,详见 man 2. syslog 在路径 /var/log 下。 Debian 系: syslog ker.log RedHat 系: messages
【摘抄】《我和所有事物的时差》李元胜
1. 给 我坐在屋里 手却在大墙的外面 摸寻着这个秋天最后一片树叶 墙外的树 它沉默的时候很像我 它从树干里往外看的时候很像我 它几乎每分钟都在长树叶 我们在一起的时候它长树叶 我们不在一起的时候它也长树叶 但两种树叶绝不相同 这你不知道 你想我的时候它长树叶 没想我的时候它也长树叶 但两种树叶绝不相同 这就我知道 它几乎每分钟都在长树叶 然后把它…
TCP 杂记
1. TCP_NODELAY 和 TCP_QUICKACK 1.1. Nagle's Algorithm 现代的 Linux kernel 的网络协议栈中默认启用的算法,也是粘包产生的原因之一。 根据算法文档,原版的 Nagle 算法可以简要表达为: If a TCP has less than a full-sized packet to tra…
【摘抄】我认识你
I 哪怕我不能把你凝视, 我也立刻认出已被毁灭的你, 因为你本就是我命中的灵魂, 我积攒了所有的等待把你等待。 II 我认识你,我在每一个神那里为你而活, 我承受着你的沉重,我才永远忧伤。 后来你仅仅用脚步就毁灭了我, 你的脚步比我的更为真实。 索菲娅·安德雷森 译·姚风
【摘抄】饮毕月光
饮毕月光,我们神游远方 以为生活就是拥抱 松林的风声,山峦的蔚蓝, 以及大海所有青绿的花园。 不过,我们只是孤独的过客, 果实不是我们的,鲜花不是我们的, 天空和大海如化外之物翳隐, 化为我们梦中的幽魂。 只因在每天升起的晨曦中, 我们在清新的花园里一无所获; 只因如果我们不属于天空和大海, 众神也无法栖身其间。 索菲娅·安德雷森 译·姚风
rust 笔记 10:axum 杂记
1. axum middleware axum crate 本身也有一些基础的 middleware 机制,在实现简单的逻辑时可以不用接入 tower。 1.1. 调用顺序 根据这篇文章的介绍,原生 axum middleware 的声明层级和调用顺序其实是反过来的,比较恶心。例如这么声明: use axum::{routing::get, Rou…
DSCP
简明重点 是一个网络层概念 在网络层报文头中,DSCP 占 6 个 bit,和 ECN (Explicit Congestion Notification,显式拥塞通知)的 2 个 bit 一起组成一个字节 从协议的角度,IPv4 和 IPv6 都是支持的。IPv6 头的 Traffic Class 也就是用于 DSCP+ECN Ref https…