我正在使用C++开发半实时系统.很多设计和逻辑都是基于事件的.在寻找c ++的一些事件框架时,我找到了Qt.Qt中的信号/插槽,状态机看起来非常适合我的情况.我更喜欢他们而不是提升.此外,QObject系统有很多很好的功能,例如QObject Model,moc,父子对象内存管理等.但是我对Qt知之甚少,我在这里有几个问题.
现在我对c ++/stl非常熟悉,是否值得花时间学习Qt?无论如何,我不会使用它最受欢迎的部分,UI.
与stl/boost相比,Qt的性能如何?由于应用程序是实时的,因此性能是关键要求.例如,我必须非常仔细地设计数据布局以最大化CPU缓存利用率.Qt提供的所有功能都会带来一些开销.会有多大的影响?
Qt开发中的多线程怎么样?我可以在Qt对象中使用stl线程或pthread,还是必须使用Qt提供的线程?这个容易用吗?
TwilightSun.. 7
Qt非常值得学习.它肯定会提高你的开发速度.与boost框架相比,Qt具有非常完整和可读的文档和示例代码,可以帮助您快速学习.
我假设您正在比较集合实现的性能.您可以参考:http://blog.codeimproved.net/2009/12/qtl-or-stl/.由于Qt更关注开发体验,因此与stl/boost相比,它的一些功能可能会有一些性能下降.但是如果有任何重大的性能损失,你总是可以毫无痛苦地切换回stl.
QThreads是基于pthreads构建的,同时提供OO抽象.如果你正在使用Qt Objects,我建议你使用QThread.它绝对易于使用,因为开发轻松是Qt的设计理论.
Qt的另一个好处是它保证在每个支持Qt的平台上,底层实现是相同的,而某些平台只提供不完整或不同的STL支持,甚至根本不提供STL支持.Qt总是更容易预测,因为它由一个组织管理.
Qt非常值得学习.它肯定会提高你的开发速度.与boost框架相比,Qt具有非常完整和可读的文档和示例代码,可以帮助您快速学习.
我假设您正在比较集合实现的性能.您可以参考:http://blog.codeimproved.net/2009/12/qtl-or-stl/.由于Qt更关注开发体验,因此与stl/boost相比,它的一些功能可能会有一些性能下降.但是如果有任何重大的性能损失,你总是可以毫无痛苦地切换回stl.
QThreads是基于pthreads构建的,同时提供OO抽象.如果你正在使用Qt Objects,我建议你使用QThread.它绝对易于使用,因为开发轻松是Qt的设计理论.
Qt的另一个好处是它保证在每个支持Qt的平台上,底层实现是相同的,而某些平台只提供不完整或不同的STL支持,甚至根本不提供STL支持.Qt总是更容易预测,因为它由一个组织管理.