Delphi/Object Pascal 仍然是高性能 REST 服务器的有力竞争者

正如 Linus 所说:一切都与数据结构有关。

操作系统专属网络:没有万能的解决方案
Linux:epoll采用边沿触发通知的直接模式。简洁、成熟,对于我们的事件驱动模型来说极其高效。我评估过io_uring,但最终认为对于普通以太网上的典型 REST/JSON 流量而言,增加的复杂性得不偿失。 Windows:IOCP采用非对称模式。通常情况下,我们通过 IOCP 注册接收数据,但对于较小的动态响应(主要情况),我们send()直接调用套接字进行写入操作,而不是注册写入操作。只有大文件传输才会经过完全重叠的 I/O 注册。 BSD发行版(如 MacOS 或 OpenBSD/FreeBSD):poll提供足够好的性能的常规 API。
记忆训练:真正的秘密武器
典型的静态 GET 请求只需要分配一次内存——URI 字符串。所有其他缓冲区都是静态的或可重复使用的。 响应构造、标头生成和 JSON 序列化会积极地重用预分配的结构——这正是mormot.core.json库内核的优势所在。
制作特色做得好
通过THttpAcceptBan易于加载的 Spamhaus 或自定义 CIDR 黑名单来缓解 IP 威胁 身份验证——基本身份验证、摘要式身份验证、JWT 身份验证以及通过 SSPI/GSSAPI 实现的完整企业级 Kerberos 身份验证 高效日志记录(采用与THttpLogger Apache/Nginx 兼容的格式,但设计用于在高吞吐量下实现低开销) 通过全球分析和监控,THttpAnalyzer提供汇总的响应统计数据,例如按月/日/小时统计。 通过mormot.net.ws.async单元准备 WebSocket。
现实世界的复杂性:渐进式缓存
Linux 对比 Windows:直面现实
为什么 Pascal 架构在 2026 年仍然有机会?
底层控制可与 C/C++ 相媲美(手动内存管理、静态缓冲区、直接操作系统 API 访问) 高生产力(简洁的语法、强大的 RTTI、优秀的mORMot 2标准库) 性能可预测,无垃圾回收暂停或隐藏成本
夜雨聆风