为什么 Qt 写的程序在不同桌面平台都很丝滑,体验和原生一样,移动端多端框架每一个都很卡?尤其是 Flutter,实测性能非常糟糕,不知道为什么这么多人吹

13 天前
 drymonfidelia
4545 次点击
所在节点    前端开发
32 条回复
neoblackcap
12 天前
@wxf666 重绘没啥性能问题,就是对移动端不是很友好,毕竟耗能。即时模式 GUI 一直都有的,而且基本上对图形渲染有要求的需求,都是得用即时模式。
如果卡顿的话,应该是没处理好事件响应
Rrrrrr
12 天前
你来弄一个?我也觉得没哪个好用
Morxi
12 天前
@jorneyr
@Shazoo
@bringwin808
我之前主要做 Qt/Embedded 开发,做多平台支撑的时候遇到过 Qt 打包直接交互异常,主要集中在按钮效果和富文本。实际应用也只限于做 QWindow ,涉及到的交互很少。
我也没说 Qt 没有元素自绘,弄个 EGL 做播放器之类的需求也场景也正常,真的展开来还是得看用的后端是啥。
1una0bserver
12 天前
flutter ,react native ,compose multiplatform ,qml ,uniapp 都写过,我感觉在 85%场景稍微注意下写法性能都不会太差,所以我在这里也下一个暴论,是你水平不行,要么就是写法不对。毕竟你连测试代码和场景都没有说明白,就抛出你的观点让人接受,有点先射箭后画靶子的味道了。
jorneyr
12 天前
@Morxi Qt 的 Ui 快应该主要原因是 C++ 本身的效率高,再加上 Qt 优化的好,极端的例如 ImGui 这种也是基于 C++ 的并且固定频率刷新界面而不是需要的时候才刷新界面的都很快。

至于 Graphics View 框架更是通过 space partition 算法,可见范围内才显示,能够支持百万图元的高效显示 (如果百万图元都在可视范围内一样很慢)。
aLazarus
12 天前
话说现在类似 electron 框架,对 windows 触控设备支持的好么?就比如在 tab 之间通过手势滑动切换这种功能做到么
iorilu
12 天前
qt 本来就是原生把, 都是 c++还不算原生吗, 难度要汇编才算
wxf666
12 天前
@neoblackcap #21

> 对图形渲染有要求的需求,都是得用即时模式。

这个怎么理解呢?


浏览器渲染,比这些客户端复杂吧。。可浏览器也是局部重绘的呀?

《开发工具》里,甚至有《突出显示需要重新绘制的区域》的选项。。

而且滚动条拉太快,下方的画面,会是一堆白色框框,还未渲染出来呢。。

如果一直是全屏重绘,滚动条拉到哪,绘制量不都差不多吗?上方能 60 Hz 刷新,下方咋就出白框框了呢。。


另外,前几年 老 Edge 浏览器,不是更被谷歌使绊子,油管视频上方放特殊元素,就变得卡顿,耗电激增吗?

如果一直是全屏重绘,增加这点绘制量,咋会让 老 Edge 这么吃亏呢。。
neoblackcap
12 天前
@wxf666 我只能说事实就是游戏,创作类软件,甚至 vscode 的编辑区都是使用即时模式自绘渲染的。而日常的很多软件的确是使用 Retained Mode (保留模式)渲染,箇中原因我也不清楚
wxf666
12 天前
@neoblackcap #29 试了一下,vscode 也是局部重绘的?

neoblackcap
12 天前
@wxf666 那就是我错了,一切以事实为准
bringwin808
11 天前
@Morxi 这么看,你是用 QtWigets 老一套了,这套在 Windows 和 MacOS 上都是自绘的,而且还是软件渲染。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1077711

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX