亲啊嘴金,发布于:Wednesday, 23 Sep 26 22:12:08 | 0 浏览
我祖传的PHP博客程序在各大平台流浪的一些积累
首先就是我祖传写PHP的,博客程序是PHP写的,PHP这个语言的诞生就是写博客的。。
你现在看到的文字,就是我拿CPU时间开销,数据库IO开销、你的浏览器直接浏览,给呈现出来的。
我知道,现在有那种编译好的纯静态的文章系统。都是静态html页面的预制菜速成内容,而且文字都是存在HTML里面写预制好的,不是从数据中请求的,就连渲染部分都是预编译代码,耗费你的CPU和GPU时间在你机器排版渲染,那种没有灵魂哈。
接着达成成就是 程序在 mips riscv arm x86 都以 年 为单位的长期运行过。
既然是 mips 运行,当年折腾了不少 如何编译成功运行 mips 的 php 并让他跑起来。那些年没有 docker 这种登西。
我直到2026年的今天才知道,Php( Plain ) 是没办法完美 静态编译的
我靠我当年各种改源码函数,改编译参数,手敲 .patch,原来用现在的术语叫做细粒度“适配”。。
没有AI这种登西,全靠自己去看Soc Cpu厂的 编译链 和 寄存器。。。
后来又有一批人,专做软件适配和选型,他们把这种过程叫做 SDK 。 对 把 过程 叫做 SDK,把编译链叫做 SDK 包。
从这个方面来看,有个叫做 Openwrt 的系统,里面有各种Php的裁剪安装包真的是神人编译链。。那些年没有 docker 这样的东西。
那我原地自封自己是全蘸工程师。。蘸就是蘸酱的意思,就是 啥软硬件系统都品尝下沉浸体验一下。。
我也不知道为什么突然有一天就变成了全栈工程师。。栈是这个栈,???不是???栈不是放登西的地方吗?
接着就是有个自称 温少 的KOL,觉得会汇编很牛逼,要大力把汇编用到工作中,他用汇编的地方是在 java 里面开个口子,
靠汇编去解析 json 字符串。。这尼玛要什么神仙的脑回路才能做出这种事。。我再强调一遍,那年没有AI。
后来有技术型人才说 全栈 就是全部都会的意思。。
那年没有分布式、我还想如果一个软件要到处放登西那应该叫多机负载,负载平衡。后来又一觉醒来,这个叫做 分布式负载均衡。。
不是,又不对啊,既然要多机了
,载入中……
首先就是我祖传写PHP的,博客程序是PHP写的,PHP这个语言的诞生就是写博客的。。 你现在看到的文字,就是我拿CPU时间开销,数据库IO开销、你的浏览器直接浏览,给呈现出来的。 我知道,现在有那种编译好的纯静态的文章系统。都是静态html页面的预制菜速成内容,而且文字都是存在HTML里面写预制好的,不是从数据中请求的,就连渲染部分都是预编译代码,耗费你的CPU和GPU时间在你机器排版渲染,那种没有灵魂哈。 接着达成成就是 程序在 mips riscv arm x86 都以 年 为单位的长期运行过。 既然是 mips 运行,当年折腾了不少 如何编译成功运行 mips 的 php 并让他跑起来。那些年没有 docker 这种登西。 我直到2026年的今天才知道,Php( Plain ) 是没办法完美 静态编译的 我靠我当年各种改源码函数,改编译参数,手敲 .patch,原来用现在的术语叫做细粒度“适配”。。 没有AI这种登西,全靠自己去看Soc Cpu厂的 编译链 和 寄存器。。。 后来又有一批人,专做软件适配和选型,他们把这种过程叫做 SDK 。 对 把 过程 叫做 SDK,把编译链叫做 SDK 包。 从这个方面来看,有个叫做 Openwrt 的系统,里面有各种Php的裁剪安装包真的是神人编译链。。那些年没有 docker 这样的东西。 那我原地自封自己是全蘸工程师。。蘸就是蘸酱的意思,就是 啥软硬件系统都品尝下沉浸体验一下。。 我也不知道为什么突然有一天就变成了全栈工程师。。栈是这个栈,???不是???栈不是放登西的地方吗? 接着就是有个自称 温少 的KOL,觉得会汇编很牛逼,要大力把汇编用到工作中,他用汇编的地方是在 java 里面开个口子, 靠汇编去解析 json 字符串。。这尼玛要什么神仙的脑回路才能做出这种事。。我再强调一遍,那年没有AI。 后来有技术型人才说 全栈 就是全部都会的意思。。 那年没有分布式、我还想如果一个软件要到处放登西那应该叫多机负载,负载平衡。后来又一觉醒来,这个叫做 分布式负载均衡。。 不是,又不对啊,既然要多机了,没必要均衡负载啊,多机就是需要平衡啊。。 比如有些机器他的磁盘IO比较强,那么这台多处理点iO ,那台就多处理些 CPU 运算。 也是猛然一下 有一天人们把这个叫做 存算分离。。 【蠢酸】都分离了,那肯定硬件强的服务器肯定能做更多的事,结果安全界出了很多靠CPU速度的攻击的方式,叫做 时延攻击、哈希碰撞。 那些写汇编的兄弟们,你们还好吧,他们说挺好的,网页浏览器在用户侧运行的登西被她们搞出来了,叫做wasm。。。 我问的是那个 从 java 打洞用 ASM 解析 json 的胸蒂。。他也说挺好的,2 了,2 代了。。既然人家都2代了,试下他的2代啊。 结果一试,这json解析速度还是没有PHP最新版的json解析函数快啊。。 后来还是继续爆安全漏洞,类型溢出,类型映射失败,装箱拆箱还是会某些字段出bug,一个强类型语言打不过弱类型语言的php。。 *** 这篇文章关键点不是我上面要说的,我上面所说的,只是想表达,我自己的博客程序是完整经历过整个产品选型,后端服务器选型,后端技术语言的选型,以及真实运行实战的全过程周期的。 我当然知道,现在主推的技术流派是万物皆App,一个小小的文字刊登站,可以用docke包起来,交给一些给硬件通电通网的【机房】平台,就能链接世界了,而创作者应该回归到本身的文字流淌上来,安于创作。 我想说的就是这个层面,这个小小的层面都有很多不尽如人意的地方。 首先我的需求: 1.肯定要支持 HTTP2 以上,回源的TCP的链接要尽可能少或者可控 2.肯定要支持证书签发续签吧。 3.肯定要支持访客的压缩传输吧。 我就这3点要求,我真的是操碎了心,因为几乎,没有哪个平台能完美支持这些。吹得都天花乱坠。 管你是 fly.io 还是 verel 还是 Netlify、Cloudflare Pages、Railway、Render ,统统不支持 HTTP3。 偶尔几个平台支持 br 压缩,不支持 ZSTD 压缩的。 br 压缩是更加耗费 {CPU时} 的,耗费CPU时 = 耗费钱包。 而且 br 在访客的浏览器解包也稍微要比 zstd 慢一丢丢。br 可能存在 白屏和闪屏情况。 zstd 压缩比 br 压缩文件要大一丢丢,但是几乎没有什么 CPU时 的消耗,就是不给。。 顺带把 CDN 厂商也一起说了,CDN 厂商偶有几个支持 HTTP3的, 支持也得开通高级版功能, 什么 tx 下一代 edgeone CDN ,HTTPS请求需要单独计费,HTTP3 请求 * 1.3 左右的放大倍率。 CDN厂更鸡贼,HTTP2 的 sever push 功能直接没了。。 verel 倒是有 sever push 功能,而且支持得很好。 Cloudflare 有 http3 功能,要高级版。 然后如果需要开启 ZSTD 压缩,也是高级功能。 最后就是证书签发,如果需要自己证书呢,就得搞个 类似于 edge function 登西,每隔48天的样子更新下, 我尼玛我都要额外设置个每隔48天运行 micro App 了,我干嘛托管啊,我直接开个程序挂在服务器上不好吗。。 还有就是 CDN 厂和这些 容器厂商的鸡贼,往 HTTP 协议里面塞东西,塞 header 响应头, 什么 http1.1 协议强制跳 301 https2 啊。关都没地方关。顶多给你个 301 或者 302 跳的选项。 header 响应头强制 改 server 值啊。 而且 这些厂商 默认都是 GZIP 压缩,http1.1跳转时候页,也累加 GZIP执行CPU时间。 即便我后端没有发 server header 头,什么 via header 就更不用说了。 还有就是对于后端的放大取,就比如有1个用户访问,发了2个请求,CDN各个节点之间,至少会请求源站4个tcp链接 。。 给你一个预取预刷新选项,不能细粒度设置。 如果是 容器厂 ,那么呢 还可以靠调整 容器的参数,设置成对后端的 HTTP/2 to c 取,但是也是设置粒度不够细。 我对(缓存)这个功能都没需求的情况下,这种放大取的行为都感觉到不可理喻。。 就是这些 面向 切面的 细分,整体上来看,什么都好什么都香,但是用切面来看,我就一个小小的博客程序。 我想要的是 那些网络处理包转发能力强的机器,负责HTTP3和HTTP2的包处理;对应需求1 那些IO快的机器,CPU的主要算力机器负责PHP这种语言的解释执行和提取图片静态大文件;对应需求2 ---需求2.1,可以扩展理解成对视频编解码能力强的机器 那些做ZSTD运算的亲和度高的CPU负责压缩,和TLS加解密;对应需求3 截止到2026年的现在,没有一家给硬件通电通网的【机房】平台完美粒度细分做到。 我写这篇的时候,刻意模糊了软件和硬件架构的本身,在一个句子中用了很多语法糖来表述我的整个流浪过程。 所以跟后端用什么编程语言无关,跟PHP无关,跟JAVA无关,跟技术选型无关。。 反而是这些【平台】还在大力推进什么Long架构,新一代Arm架构。。。