因为 qtng 用的是 libev,协程切换用的是 boost::context asm 切换,所以性能目前还好。我前段时间用 wrk 测试了一下,ryzen 1700@3.2g 单核 echo hello 四万多 rps,算很一般,凑合凑合。我现在主要是特性实现,估计还有很大的优化空间。
qtng 目前我的主要用途是服务端的 tcp/kcp 长连接服务器,以及 qt 客户端的 http client. 前者是商业项目,后者是我个人自娱自乐的项目。
因为实际应用都是在 Linux 里面,所以目前 Windows 是 qtng 的二等公民。我在 Windows 用着 WSAAsyncSelect(),一时半会儿也不想改。反正也没人想着用 C++ 写 Windows 网络服务端吧。
至于为什么是 Qt 呢,因为我是 KDE_Qt 版多年的版主啊。我很欣赏 qt 基础部分的质量,比 stl/boost 强多了,作为一个业余 C++ 程序员,我可不想和 boost 源代码搏斗。
【 在 billybear04 (billybear04) 的大作中提到: 】
: 标 题: Re: 协程或线程库好写吗?
: 发信站: 水木社区 (Tue Jun 9 21:59:20 2020), 站内
:
: MFC, C#等处理url和unicode肯定是极其方便的。各种HTTP Client/Server我用C也撸过,到了https就撸不动了。万一QUIC真成了呢?还得再撸。
:
: 服务器端,nginx既是负载均衡又是web服务器。追求性能可以用C给它写扩展,我试过一点。我还可以用libevent, libev, 都很小。不追求性能Java的、Apache+PHP……实在太多。现在又docker, mesh server……
:
: 我认为你这个项目的精华在于“c++ 世界比较完善的协程库,考虑了各种同步,异常,内存管理的情况”。云风的星星比你多,他现在好像不做了(4 year ago),如果你们能够结合起来不好吗。
:
: “用C++再写个HTTP Server”,lighttpd呢?Enovy呢?后者不知道算不算,需求可能就不存在啊。
:
: 哦,还有server, 高度追求性能,Linux下DP什么,UIO会不会真成?Windows下I/O completion port不是有人说已经过时了?你还在PostMessage,PostThreadMessage换了吗?我不知道IIS, Windows Server是个啥情况。
:
: 按惯例以粗话结尾:处理URL, Unicode你要依赖Qt,你是自己写不了/写不好,还是上错了船?优先级的安排是否有点you know
: --
: 谁能想到一头整天游手好闲的青年绿龙,竟然会沉溺于阅读,他几乎什么都看,无论是诙谐的小说还是慷慨激昂的史诗,连晦涩的宗教典籍都能耐着性子看下去。在起居室内,甚至有一张斜面桌供绿龙阅读时使用。...要破解密码盘,不仅要足够的实力来到这,还要熟悉矮人风俗、矮人宗教学和矮人史。而矮人们肯定不会闯入祖先的祭坛,那熟知以上知识的外族人去哪找?斯坦德路此时简直想放声大笑,过往积累的知识,阅读书籍受到的嘲笑,终于有了报偿!
:
:
: ※ 修改:·billybear04 于 Jun 9 22:06:34 2020 修改本文·[FROM: 106.120.233.*]
: ※ 来源:·水木社区
http://newsmth.net·[FROM: 106.120.233.*]
--
修改:billybear04 FROM 106.120.233.*
FROM 112.47.122.*