QtCore对于服务器端使用来说太'heavy'了吗?
Is QtCore too 'heavy' for server-side use?
我正在考虑使用Qt库编写一个自包含的http服务器,尽管许多人认为QtCore过于臃肿,开销太大。使用线程池,QtCore http服务器是否可以管理大约50个并发连接的负载?
QtCore库是在arch Linux上动态链接的,经过优化编译后发布o2
没有理由不能用Qt编写服务器,但是,确实没有办法事先告诉性能是否会达到您想要的效果(取决于您的服务器做什么)。请注意,并发线程的最佳数量通常取决于硬件内核的数量以及程序中的并行性级别。我的建议是尽可能在最短的时间内实现任何功能,然后根据需要调整性能。即使服务器不能处理那么多并发连接,您也可以使用进程级并行性(运行多线程服务器的多个实例),直到您提高了性能。
你的问题很广泛,答案取决于你想如何设计你的http服务器。您可以将其设计为"单线程反应器"或"多线程反应器"或"半同步半异步"服务器。
QT主要使用小包装类在本机或posix api和带来自己的超重,50个连接听起来并不太多,但答案再次取决于这些连接将做什么?提供简单的页面还是执行繁重的计算?
我认为这个项目的困难在于实现一个完整的http服务器,它是安全的,可靠的和可扩展的。为了提供简单Java servlet模型的生命周期,您必须编写大量代码。需要许多接口/抽象。
你可以找到已经测试过的开源http服务器。我甚至不会为自己编写生产软件而烦恼。
50个连接并不多。
但是我希望你能添加QtNetwork模块:-)
相关文章:
- 看起来is_nothrow_constructible_v()在MSVC中被破坏了,我错了吗
- 如何正确使用 >=?(a+f()+c)>=0 错了吗?
- 我在这里正确传递参数了吗?
- 是否有必要使用 std::move?这不是已经是一个右值参考了吗?
- 理解C++内存顺序,我错了吗?
- Vulkan默认情况下已经有多线程了吗
- C++17 并行算法已经实现了吗?
- v8 不再支持 v8::Value::ToNumber 了吗?
- _GLIBCXX_USE_CXX11_ABI RHEL6 和 RHEL7 上禁用了吗?
- 赫伯·萨特在 GotW #35 中关于字体名的代码笑话过时了吗?
- 成员函数作为朋友:利普曼第五本书错了吗?
- 新闻组 comp.lang.c++.moderated 死了吗?
- "std::is_callable"在 C++17 中被 "std::is_invocable" 取代了吗?
- auto*在编译时有用吗?auto关键字足够了吗
- C 中类模板的模板参数扣除17:我做错了吗?
- clang的libc++生产准备好了吗?
- 我误解了这个伪代码了吗
- 在C++中不再需要清理代码了吗
- 简单的Thrust代码的执行速度大约是我的cuda内核的一半.我用Thrust错了吗
- QtCore对于服务器端使用来说太'heavy'了吗?