Javier 介绍了一种测量 Qt Quick 中从触发项目可见性到其实际显示在屏幕上之间延迟的 C++ 方法。这有助于识别那些组件渲染滞后于预期的“感知”掉帧。 该方法通过子类化 `QQuickItem` 来监控 `visibleChanged` 信号。为了确保准确性并避免因无关动画引发的过早测量,该过程使用了 `ensurePolished` 来标记项目何时准备好进行渲染。通过连接到 `QQuickWindow::afterFrameEnd`,系统能够捕捉到项目被交换至显示器的精确时刻。 由于原始毫秒数可能会产生误导,该方案通过将经过的时间除以显示器的刷新率(例如 60Hz 时约为 16 毫秒)来计算掉帧数。这提供了一种标准化的性能指标。此外,作者强调在 C++ 构造函数中将项目的可见性设置为 `false`,以确保 `visibleChanged` 信号在 QML 实例化期间能够可靠地触发。这一工具为开发者提供了一种衡量 UI 响应速度并优化渲染性能的通用方法。
在本期《The Amp Hour》节目中,克里斯(Chris)邀请了传奇安全研究员兼工程师米哈乌·扎列夫斯基(Michał Zalewski,即 lcamtuf)做客。对话涵盖了米哈乌的职业生涯,从他在模糊测试(AFL)和信息安全领域的开创性工作,到他近期向电子教学领域的转型。
讨论的重点是他所著的新书《电路的秘密生活》(*The Secret Life of Circuits*,No Starch Press 出版)。该书旨在通过第一性原理而非单纯依赖抽象微积分来揭开电子学的神秘面纱。米哈乌分享了他的教学方法——即从场效应管(FET)入手,而非传统的先讲双极型晶体管(BJT)——并表达了他对硬件演进的浓厚兴趣。
对话还涉及了多种小众爱好,包括他收藏的老式计算器、计算机技术史上的“死胡同”,以及他最近的实践项目,例如用电流表制作时钟。在反思他所涉足的两个领域时,米哈乌指出,安全研究往往很快过时,而电子学的基础物理原理却是永恒的。听众在六月份使用折扣码 **AMPHOUR26** 购买其新书可享受七折优惠。