Tiny Tapeout Explorer 是一款基于网页的交互式可视化工具,用于探索 Tiny Tapeout 社区的集成电路设计。其功能包括: * **WASM 驱动引擎**:基于 C++ 的曼哈顿优化布局解析器和电路提取器,可在浏览器中原生运行。 * **高级可视化**:利用 WebGL 2.0 实现丰富的 3D GDSII/OASIS 探索,支持导线级高亮显示。 * **开关级仿真**:具备原生 VGA 输出和实时信号监控的交互式逻辑仿真。 本项目是我之前开发的模拟器(原 TT09 WebGL GDS 查看器)的一次重大升级。 作者:Alexander Mordvintsev | 源代码:GitHub
一份近期发布的 AWS 基准测试报告称 PostgreSQL 在 Linux 7.0 上的性能下降了 50%,这引起了不必要的恐慌。这一性能衰退并非“Linux 破坏了 Postgres”,而是一个特定的、非生产环境基准配置所导致的问题。
性能下降源于 Linux 7.0 将默认抢占模式从 `PREEMPT_NONE` 改为 `PREEMPT_LAZY`。在极端并行(96 个 vCPU)的情况下,PostgreSQL 在缓冲区管理器的特定自旋锁(spinlock)上会遭遇严重争用。当使用 4 KB 页面(该基准测试的默认设置)运行时,Postgres 会频繁触发次要缺页中断。如果持有自旋锁的进程在处理这些中断时被抢占,就会产生“护航效应”(convoy effect),导致其他线程停滞,从而造成观察到的吞吐量崩溃。
解决办法并非避免内核升级,而是遵循既定的最佳实践:**启用大页内存(Huge Pages)**。使用大页内存可以减少缺页中断和 TLB 压力,从而使性能衰退完全消失。对于大多数生产环境而言,此问题几乎没有影响。如果您是自托管的大规模 Postgres 实例,请确保配置了 `huge_pages = on`。如果您使用的是托管数据库服务,则由服务提供商负责这些配置。