我有一种在 WPF 中测量 FPS 的方法(我真的不知道这是否是正确的测量方法)。
CompositionTarget.Rendering += CompositionTarger_Rendering;
void CompositionTarget_Rendering(object sender, EventArgs e)
{
var args = (RenderingEventArgs)e;
if(args.RenderingTime == m_Last)
{
return;
}
m_Last = args.RenderingTime;
DoingFpsCalculations(); // This method adds to a counter and reports each elapsed second what the counter is => FPS
}
Run Code Online (Sandbox Code Playgroud)
这些计算显示我的帧速率约为 40-60 FPS
然而,有时我可以直观地看到事实并非如此。FPS 计数器报告称 50FPS,但 UI 绝对会在较低的 FPS 下更新。
例如,我有一个以 15Hz 运行的 DispatcherTimer,计时器调用渲染方法并更新绑定到其 RenderTransform 的 ui 元素的转换。定时器以 15Hz 的频率被调用并及时完成其计算。FPS 显示为 40-60 fps,但 UI 元素绝对仅在 4-6 FPS 内更新。
我可以依靠什么?
我知道 UI 线程和渲染线程之间存在差异,因此真正的 FPS …
在抱怨允许附加到 VPC 的 lambda 函数访问互联网的 NAT 网关成本时,我发现了一些关于在公共子网而不是私有子网中部署 lambda 并将 EIP 附加到由 Lambda 创建的 ENI 的建议。(我也有一个连接到 VPC 的 IGW)。
我关注了这篇文章:/sf/answers/5227829771/
这有效!我在公共子网中运行的 lambda 可以访问互联网。
然而,我在很多地方读到“这不应该是可能的”,或者“为 lambda 提供互联网访问的唯一方法是通过 NAT 网关/实例。” 或“如果你这样做,它就无法正确扩展”。
这只是一个坏主意吗?我的 lambda 需要访问互联网和 VPC 中的资源(例如私有子网中的 rds)
.net ×1
amazon-vpc ×1
aws-lambda ×1
frame-rate ×1
networking ×1
performance ×1
render ×1
wpf ×1