PHP 与 Golang 协同:用 RoadRunner 给 PHP 应用换一颗 Go 的心脏

PHP 与 Go 的结合并不少见,但在工程实践中,最常见的合作形态并不是「把 PHP 代码改写成 Go」,而是让 Go 接管网络层与进程管理,让 PHP 专注于业务逻辑。RoadRunner 正是这种思路的代表性项目:它用 Go 写了一个高性能的应用服务器(application server),把 PHP 进程作为长驻 worker(常驻工作进程)调度起来,从而绕开了传统 PHP-FPM 在每个请求上重复引导框架的开销。

ptrace 学习笔记

ptrace(2) 是 Linux(以及多数现代 Unix)提供的一个系统调用,允许一个进程(tracer,跟踪者)观察、控制另一个进程(tracee,被跟踪者)的执行,并读写其内存与寄存器。它是 stracegdb 等工具的底层基石(perf trace 走的是 perf_event_open tracepoint 路径,刻意避开 ptrace 的高开销),也是反调试、沙箱、热补丁等技术的实现入口。本文整理其工作模型、常用 request 与典型示例。

Python 可视化调试

「可视化调试」在 Python 语境下有两层含义:一是用图形界面(GUI)的调试器,在断点处查看变量、调用栈与求值表达式;二是把程序的执行过程可视化,用时间线、火焰图等呈现函数调用顺序与耗时。前者解决「程序为什么是这个状态」,后者解决「程序究竟是怎么跑的」。本文介绍三种常用方案。