Windows 7(或更高版本)中活动的可见hwnd的数量是否会显著影响性能?
Does the number of active visible HWNDs in Windows 7 (or up) affect performance notably?
这个问题确实很模糊,但我尽量避免掉进设计的兔子洞。我听说在一个应用程序中创建数百个按钮和其他控件比我自己编写无窗口控件和处理鼠标点击/移动/跟踪/捕获逻辑的性能要差。
我只想说我的偏好是使用基于HWND的控件,因为我不需要重新发明轮子,但如果应用程序将变得不可用,则不是。
根据我使用hwnd非常重的应用程序的经验,我认为您不会遇到重大的总体性能问题。
但是,如果您疯狂地创建O/S窗口,则需要确保您没有超过每个进程和每个会话的句柄限制(默认为一个进程10,000个,会话32,768个)。
在某些时候,您将无法创建新的句柄(因此无法创建新的窗口对象),您的应用程序将开始以奇怪的方式运行,并且从那里开始走下坡路。
当您创建大量的O/S句柄时,您也可以在桌面堆上运行较低,这可能会导致其他不稳定问题。由于这些原因,最好以这样一种方式进行设计,即对于任何可能的用例,您都要保持在限制之内。
相关文章:
- 是否总是可以将使用递归编写的程序重写为不使用递归的程序C++,性能观点是什么?
- 不同版本的编译器(例如GCC)是否会产生不同的性能?
- 在现代C++中,侵入式容器是否仍然比非侵入式容器具有性能优势?
- 与纯 V8 相比,NodeJS 是否有任何性能缺陷或显著开销?
- 通过默认复制构造函数比较 C++ 字符串是否会影响性能,原因为何?
- 隐式转换函数的返回对象时是否会影响性能?
- 为数组赋值时是否存在性能差异
- 在类中始终使用此指针是否有任何性能成本
- 在渲染之前直接上传是否会对性能产生负面影响
- 我是否错过了什么,或者虚拟呼叫的性能并不像人们所说的那样糟糕
- 使用 OpenGL 窗口(如 GLFW)或周围的窗口(如 GTK 或 SDL)是否存在性能差异?
- 在将其尺寸较大的向量移动到容量较小的向量之前,是否可以通过使用Reserve()来提高代码性能
- QSqlQuery 绑定值与 BindValues 与 QString.arg() 是否存在性能差异
- 检查从查询返回的任何行是否包含在字符串中的最高性能方法?
- 在C++代码中使用纯 C 库是否有性能下降/损失
- 使用 const CString& 而不是单独使用 CString 作为函数参数是否有任何性能优势?
- 在 C/C++ 中在特定地址边界上对齐内存是否仍能提高 x86 性能?
- 是否有更好的方法(性能提高 /内置功能)获得矩形的旋转角度
- 在较大的架构上使用UINT8_T时,是否存在性能问题
- 对小型任务多次使用std::async是否性能友好