【问题标题】:writing to GUI issue写入 GUI 问题
【发布时间】:2009-12-03 20:34:10
【问题描述】:

所以我有一个设置,其中两个 imac,imac_1 和 imac_2,通过火线连接。 imac_1 向 imac_2 发送一些调试信息,在 imac_2 上,我有一个 c++ 程序,用于捕获调试信息。(见下图)

现在的问题是,如果我将调试信息直接写入 GUI(使用 QT 创建),它会非常慢,慢是指 GUI 需要时间来加载数据。所以我所做的是将调试信息写入缓冲区,然后将该缓冲区转储到 GUI 中,但这也很慢,因为 GUI 需要时间来加载数据。

我正在考虑将调试信息写入文件,然后将其加载到 gui 中。所以我会将前 10,000 行加载到 gui 中,然后当用户向下滚动时,我会加载接下来的 10,000 行。

imac_1(发射器)--->火线(中)--> imac_2(接收器)

有什么想法或建议吗????

我正在使用: Mac OS X, X代码, 微博

【问题讨论】:

  • 如果没有更多信息,我什至无法想出一个令人满意的答案。你知道为什么 GUI 很慢吗?如果以两种方式处理数据很慢,那么使用第三种方式可能不会更快。
  • 我认为 gui 很慢的原因是因为 gui 开销。我认为我在解释我的问题方面做得不好,但是你们还想知道什么。谢谢。

标签: c++ xcode user-interface performance buffer


【解决方案1】:

听起来您的问题与两台计算机通信无关,而可能是您的 GUI 应用程序。

我建议您尝试您提到的文件方法,如果只是为了将 network 组件与讨论隔离开来。然后努力使您的 GUI 更快。

如果您一次添加一行文本,这可能会导致速度变慢,但 10,000 行并不算多。

其他方法可能包括在加载文本文件时关闭重绘或类似操作。

【讨论】:

  • ++ 在加载时关闭重绘在其他情况下是一个巨大的胜利。您不希望它在 10k 行中的每一行都经历整个无效/绘制周期。
  • 我做了一些写入文件与 gui 的图表,似乎写入文件更快。但现在的问题是,在我启动程序后,gui 何时开始从文件中加载数据。因为该文件不会在程序启动后立即更新。谢谢
  • 我正在考虑从主线程启动一个线程,该线程将负责 gui 的内容,例如创建和加载数据。
猜你喜欢
  • 1970-01-01
  • 2013-01-29
  • 2012-12-20
  • 2021-04-28
  • 1970-01-01
  • 2018-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多