我有一个支持server的多用户,它基于用Qt编写的qxmpp库,并通过继承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?开始,所有通过数据库工作的扩展都分别使用它。
发布于 2014-01-01 14:21:14
您可以阅读更多关于单身汉在许多情况下被认为是不好的原因:
我个人会避免他们在你没有上下文更多。到目前为止,您购买的唯一原因是用于单个对象,而不是传递引用或类似的类型,您可以为服务器服务节省一些内存。
在讨论的基础上,当复杂性差异不明显时,最好确保有一些基准。在特殊情况下,为大约1000个客户端增加216 K内存,您将获得大约250 MB的额外内存使用量。
我把这个数字加起来,以防万一。这根本比不上服务器的容量,服务器的容量似乎是16 GB左右。如果您有其他需要内存的服务,那么这些服务可能会是研究优化的更糟糕的地方。
尽管如此,如果您希望使用单例,则可以在Qt中的静态或阿格斯宏上实现该功能。请注意,这在Qt 4中也是公开的,尽管没有文档。据我所知,它在Qt 4中没有适当的线程安全性,尽管在Qt 5中有明显的改进。
https://stackoverflow.com/questions/20866066
复制相似问题