UID:153207
UID:129774
渡世白玉:这个效果不怎么好的,我当初测试过libev做底层的,在linux下,但是效果和不使用差不多的,大并发同样有glib的erro的。也可能是我当初使用的不对吧。针对做服务端性能不佳,最好的是不使用QT 的network模块,用其他的库做主力,然后使用Qt Core里面的一些东西代替stl和boost的。 .. (2015-11-29 15:46)
songhuirong1:非常感谢你的回答。还有个问题想问下,server端就用一个线程专门负责监听客户端,只要有客户端连接上来就创建一个socket,然后把它保存到一个socket列表里。当这个列表里的任何一个socket收到客户端的请求时,这时server端就把要处理的任务丢到线程池里去处理。请我这种方式写的server性能如何?我就担心只有一个线程负责监听客户端的连接,如果同时有几千个客户端连接上来,server的处理速度是不是跟不上
UID:44800
渡世白玉:可以的,只是,Qt的socket不支持跨线程收发消息的。你需要用信号槽来回中转。但是如果你用asio的socket的话是没有问题的。如果只是Qt的话,我也写过相关的线程池的实现:https://github.com/dushibaiyu/QtTcpThreadServer这个充分利用Qt线程和事件循环的。....... (2015-11-30 09:39)
songhuirong1:有时间要学习下boost,boost可以满足我的需要,只是学习boost需要比较长的时间,boost库太大了。不知道楼主用过golang没有,golang天生就支持高并发,而且语法特性非常少,学习时间比较短。就是不知道golang写的服务器程序跟boost写的,哪个性能好些。 (2015-12-01 12:30)
渡世白玉:我关注过golang。没系统学习和使用过。至于那个效率高,纯echo的没有意义,关联业务之后,那就是开发者和架构的设计了。理论上说是boost效率更高的。但是boost的学习曲线不好弄得。我现在也没系统学习过boost,我封装asio是利用C++11 版的asio,可以不依赖boost的(定时器和序 .. (2015-12-01 14:53)
渡世白玉:性能,差距很小。但是Qt network和boost.asio的差距是很明显的。给你几个博客你自己感觉吧。关于信号槽的:http://www.dushibaiyu.com/2015/07/qt-signals-slots-connect.html关于容器的:....... (2015-12-01 17:13)
songhuirong1:C++11里面我怎么没看到有Asio这个库?难道我搞错了? (2015-12-02 18:20)