设为首页收藏本站

ZMX - IT技术交流论坛 - 无限Perfect,追求梦想 - itzmx.com

 找回密码
 注册论坛

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

用百度帐号登录

只需两步,快速登录

搜索
查看: 655|回复: 2

kangle 3.6.0版本新增boost fcontext协程,应该能比之前的ucontext进一步提高多线程切换性能

[复制链接]
 成长值: 333

签到天数: 4736 天

[LV.Master]伴坛终老

发表于 2024/8/11 02:18 | 显示全部楼层 |阅读模式 |Google Chrome 127.0.0.0|Windows 10
天涯海角搜一下: 百度 谷歌 360 搜狗 有道 雅虎 必应 即刻
kangle 3.6.0版本新增boost fcontext协程,应该能比之前的ucontext进一步提高多线程切换性能

表现在多核心CPU上运行的kangle,使用fcontext应该能提高性能
https://www.boost.org/
https://github.com/boostorg/context

原用的ucontext
https://github.com/kaniini/libucontext

编译方法
cmake .. -DENABLE_FCONTEXT=1

新的fcontext测试对比多线程性能大约提升11%
ucontext
Concurrency Level:      100
Time taken for tests:   10.829 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      48314024 bytes
HTML transferred:       23500000 bytes
Requests per second:    9234.44 [#/sec] (mean)
Time per request:       10.829 [ms] (mean)
Time per request:       0.108 [ms] (mean, across all concurrent requests)
Transfer rate:          4356.96 [Kbytes/sec] received


fcontext
Concurrency Level:      100
Time taken for tests:   10.063 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      48313336 bytes
HTML transferred:       23500000 bytes
Requests per second:    9937.07 [#/sec] (mean)
Time per request:       10.063 [ms] (mean)
Time per request:       0.101 [ms] (mean, across all concurrent requests)
Transfer rate:          4688.41 [Kbytes/sec] received


3.5.21.16生产版本,看来拿3.6.0开发版本对比生产版本果然是,,,毕竟生产版本有jemalloc高性能加持
Concurrency Level:      100
Time taken for tests:   7.525 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      48381928 bytes
HTML transferred:       23500000 bytes
Requests per second:    13288.51 [#/sec] (mean)
Time per request:       7.525 [ms] (mean)
Time per request:       0.075 [ms] (mean, across all concurrent requests)
Transfer rate:          6278.55 [Kbytes/sec] received


两个3.6开发版对比,,确实强了一丢丢,感觉是误差,测了几次结果大概5-7%左右提升
感觉可能是编译没有启用-DCMAKE_BUILD_TYPE=Release选项导致的,启用后在测了一次,,,发现结果依旧一样没区别,性能比3.5.21.16下降了30%左右性能
3.5.21.16
Concurrency Level:      100
Time taken for tests:   7.234 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      24644184 bytes
HTML transferred:       0 bytes
Requests per second:    13823.46 [#/sec] (mean)
Time per request:       7.234 [ms] (mean)
Time per request:       0.072 [ms] (mean, across all concurrent requests)
Transfer rate:          3326.83 [Kbytes/sec] received

ucontext
Concurrency Level:      100
Time taken for tests:   9.313 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      24616784 bytes
HTML transferred:       0 bytes
Requests per second:    10738.10 [#/sec] (mean)
Time per request:       9.313 [ms] (mean)
Time per request:       0.093 [ms] (mean, across all concurrent requests)
Transfer rate:          2581.42 [Kbytes/sec] received

fcontext
Concurrency Level:      100
Time taken for tests:   9.349 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      24604296 bytes
HTML transferred:       0 bytes
Requests per second:    10696.76 [#/sec] (mean)
Time per request:       9.349 [ms] (mean)
Time per request:       0.093 [ms] (mean, across all concurrent requests)
Transfer rate:          2570.18 [Kbytes/sec] received


2024年8月21日补充
官方已经优化修复3.6.0性能下降的问题,请更新到最新提交的代码,编译打开选项 -DENABLE_JEMALLOC=1 也可以带来10%的性能提升
https://github.com/keengo99/kangle/commit/d7f955d5b038e72e94b17b001a85f9f4ebf2a56f
但是经过我测试依旧不行,,,性能对比3.5来说还是很差

3.6新版是重构为动态模块化的 编译好的文件不能直接用 要在机器上单独编译使用
我这编译好的二进制文件发你 你那是无法执行的 会提示so文件未找到
这也可能是性能下降的一个原因,以前是静态编译文件50M,现在动态的只有2M

2024年11月29日补充
今天3.6定版发布更新后,优化了网络发送和接收,减少了上下文切换,性能做到和3.5基本一致了,但是我感觉还有一些优化空间,估计要启用iouring模型

评分

参与人数 1樱币 +2 收起 理由
algoblue + 2 神马都是浮云

查看全部评分

欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复

使用道具 举报

签到天数: 67 天

[LV.6]常住居民II

发表于 2024/8/11 13:00 | 显示全部楼层 |Google Chrome 127.0.0.0|
版本        3.5.21.16(enterprise),最新版的kangle去哪里装哦,我现在都用的一键脚本
欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复 支持 反对

使用道具 举报

 成长值: 333

签到天数: 4736 天

[LV.Master]伴坛终老

发表于 2024/8/11 19:01 | 显示全部楼层 |Google Chrome 127.0.0.0|Windows 10
maxrate 发表于 2024/8/11 13:00
版本        3.5.21.16(enterprise),最新版的kangle去哪里装哦,我现在都用的一键脚本

3.6.0目前处于开发阶段,感兴趣可以去官方仓库下载源代码来使用
https://github.com/keengo99/kangle
欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册论坛 新浪微博账号登陆用百度帐号登录

本版积分规则

手机版|Archiver|Mail me|网站地图|IT技术交流论坛 ( 闽ICP备13013206号-7 )

GMT+8, 2024/12/22 19:27 , Processed in 0.166741 second(s), 21 queries , MemCache On.

Powered by itzmx! X3.4

© 2011- sakura

快速回复 返回顶部 返回列表