Singletone中的数据库连接
Database connection in Singletone
本文关键字:数据库连接 Singletone 更新时间:2023-10-16
我有一个支持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?
因为,所有通过数据库工作的扩展都分别使用它。
您可以阅读更多关于单态的信息,通常为什么它们在许多情况下被认为是坏的:
辛格尔顿有什么不好的?
我个人会在没有上下文的情况下避免它们。到目前为止,你购买单身人士的唯一原因是,你会为服务器服务腾出一些内存,而不是四处传递参考资料或诸如此类的东西。
根据讨论,当复杂性差异不明显时,最好确保有一些基准。在您的特殊情况下,如果为大约1000个客户端增加216K内存,您将获得大约250 MB的额外内存使用量。
我把这个数字四舍五入一点,以防万一。这与您的服务器的容量(大约为16GB)根本无法相比。如果你有其他需要内存的服务,那么这些服务可能是一个更令人反感的优化地方。
也就是说,如果您希望使用singleton,您可以在Qt中的Q_GLOBAL_STATIC或Q_GLOBAL_STATIC_WITH_ARGS宏之上实现它。请注意,这在问题4中也是公开的,尽管没有记录在案。据我所知,它在Qt4中没有适当的螺纹安全性,尽管在Qt5中有了显著的改进。
相关文章:
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- 如何在多个线程中创建 QSql数据库连接时防止名称冲突
- 数据库连接并将数据从C ++程序保存到MySQL
- 在 C++ 中获取数据库连接
- Firebase C++ Windows 上的实时数据库连接丢失
- 我不能使用 mysql 数据库连接同时使用插入和选择.C++
- C++ Qt SQL lite 数据库连接问题
- C++ 程序中的数据库连接检查
- 打开与 Qt/C++ 的数据库连接
- 如何修复数据库连接的C 程序运行时间错误(0xc0000005)
- 使用libpq组织PostgreSQL数据库连接参数
- Qt 中的数据库连接池
- Qt-同时处理多个数据库连接
- 使用QT C 为Sevaral表单创建常见的数据库连接
- 将Raspberry Pi 2与外部远程数据库连接
- 是否允许在同一 Sqlite 数据库连接中启动多个事务
- IIS-部署ASP.NET网站和数据库连接
- 没有数据库连接的字符串转义
- Singletone中的数据库连接
- 正在将数据库连接到本地网络中的程序