单调中的数据库连接

Elgolondrino

我有一个多用户支持server,该支持基于通过继承qxmpp编写Qt和扩展的QXmppServerExtension所以,我的问题是:既然如此,Considering multi-user support in my server, whether it's safe or not to use a Singletone class for database connection and holding a connection for QSqlQuery?所有通过数据库工作的扩展都分别使用它。

lpapp

通常,您可以阅读有关单例的更多信息,为什么在很多情况下它们被认为是不良的:

Singletons有什么不好的呢?

我个人会在没有上下文的情况下避免使用它们。到目前为止,您为单身人士购买而不是传递引用或类似的东西的唯一原因是,您将为服务器服务保留一些内存。

根据讨论,最好在复杂性差异不明显的情况下确保有适当的基准。在您的特殊情况下,如果为大约1000个客户端增加了216K内存,您将获得大约250 MB的额外内存使用量。

我将这个数字四舍五入,以防万一。这绝对无法与您的服务器容量(大约16 GB)相提并论。如果您还有其他需要大量内存的服务,那么可能更不宜考虑进行优化。

话虽如此,如果您想单身,可以在Qt中的Q_GLOBAL_STATICQ_GLOBAL_STATIC_WITH_ARGS之上实现该功能请注意,这在Qt 4中也是公开的,尽管没有记录。据我所知,它在Qt 4中没有适当的线程安全性,尽管在Qt 5中得到了显着改善。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章