Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 单音数据库连接_C++_Qt_Qtsql_Qtcore_Qxmpp - Fatal编程技术网

C++ 单音数据库连接

C++ 单音数据库连接,c++,qt,qtsql,qtcore,qxmpp,C++,Qt,Qtsql,Qtcore,Qxmpp,我有一个多用户支持服务器,它基于Qt编写的qxmpp库,并通过继承QXmppServerExtension来扩展。所以,我的问题是:考虑到我的服务器中的多用户支持,使用单音类进行数据库连接并为QSqlQuery保留连接是否安全?因为,所有通过数据库工作的扩展都分别使用它 您可以阅读更多关于单身人士的信息,了解他们在许多情况下被视为不好的原因: 我个人会在你的上下文中避免它们。到目前为止,您购买单例而不是四处传递引用或类似内容的唯一原因是,您会为服务器服务留出一些内存 根据讨论,在复杂性差异不明显

我有一个多用户支持服务器,它基于Qt编写的qxmpp库,并通过继承QXmppServerExtension来扩展。所以,我的问题是:考虑到我的服务器中的多用户支持,使用单音类进行数据库连接并为QSqlQuery保留连接是否安全?因为,所有通过数据库工作的扩展都分别使用它

您可以阅读更多关于单身人士的信息,了解他们在许多情况下被视为不好的原因:

我个人会在你的上下文中避免它们。到目前为止,您购买单例而不是四处传递引用或类似内容的唯一原因是,您会为服务器服务留出一些内存

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

为了以防万一,我正在把这个数字四舍五入。这与您的服务器的容量(似乎约为16GB)无法相比。如果您有其他内存不足的服务,那么这些可能是一个更令人不快的地方来研究优化


也就是说,若您希望使用单例,可以在Qt中的或宏之上实现它。注意,这在Qt4中也是公开的,尽管没有文档记录。据我所知,Qt 4中没有适当的线程安全性,但Qt 5中有了显著的改进。

为什么您更喜欢单线程而不是多线程?因为,我想在服务器端节省内存。您是否有具体的基准测试,可以节省多少内存?您对使用多线程有何建议?对于16 GB ram,这大约是220 MB。您是否同意,除非您有其他大量使用内存的操作,否则它可以忽略不计,但在这种情况下,这可能不是寻找优化的最佳位置?