cpu高 rust腐蚀_Rust:最小化窗口后 CPU占用率高 (winit,glutin,imgui-rust)

本文介绍了在使用imgui-rust时遇到的问题,即窗口最小化后CPU占用率升高。原因是渲染后端在窗口最小化后仍然持续运行,导致不必要的渲染和事件处理。解决方案是在检测到窗口被最小化时,使渲染线程进入休眠状态,通过调整线程睡眠时间来降低CPU使用。
摘要由CSDN通过智能技术生成

最近试着用 imgui-rust 绘制界面,发现窗口最小化后CPU占用会增大。

查询的资料如下:

原因: 最小化后渲染后端不受控制的运行,imgui 进行许多无用的渲染,EventsLoop不断的拉取无用事件。

解决办法: 检测到最小化后,让当前渲染线程的休眠一段时间,不要过快的执行。

impl System {

pub fn main_loop(self, mut run_ui: F) {

let System {

mut events_loop,

mut imgui,

mut platform,

mut render_sys,

..

} = self;

let mut encoder: gfx::Encoder<_ _> = render_sys.factory.create_command_buffer().into();

let mut last_frame = Instant::now();

let mut run = true;

let mut minimized = true;

while run {

events_loop.poll_events(|event| {

platform.handle_event(imgui.io_mut(), render_sys.window(), &event);

if let Event::WindowEvent { event, .. } = event {

match event {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值