通信框架 smart-socket 1.4.10 发布,bug 修复与示例补充
smart-socket 是一个 AIO 通信框架,可以快速、轻松地开发 Client/Server 网络应用程序。它大大简化了网络编程难度和复杂度,可广泛应用与各类TCP/UDP的通信场景。
smart-socket 是从许多协议(Http、WebSocket、MQTT、二进制私有协议)的实践中积累了大量宝贵经验,从而凝练成了一款极简、易用、高性能的通信框架。
极简
- 支持各种传输类型、协议,且仅围绕着两大核心接口(MessageProcessor、Protocol)编程开发。
- 灵活且可扩展的状态机设计,可以清晰地分离关注点。
- 核心包代码 1500行,编译后的jar包仅 44kb(如果对此无明显感触,可以比较其他同类项目)。
易用
- 文档丰富的 Javadoc 、用户指南和示例。
- 没有额外的依赖,只要求JDK 8及以上版本。
- 高度可定制化的插件。已内置一些非常实用且开箱即用的插件:SSL/TLS通信、心跳、断链重连、服务指标统计、黑名单、内存池监测。
高性能
- 更好的吞吐量,更低的延迟
- 更少的资源消耗
- 最尽肯能减少不必要的内存拷贝
更新内容
- bugfix:修复服务端线程名显示不正确的问题。
- 优化:客户端连接失败后自动释放资源,无需用户执行shutdown。感谢smart-socket群友:fanasilver 反馈。
- 优化:优化心跳插件设计,引入超时回调机制。关于心跳插件的使用参考:《smart-socket实战:玩转心跳消息》
- 优化:补充了Push通信示例:《smart-socket实战:服务端主动Push消息至客户端》
Maven
<dependency> <groupId>org.smartboot.socket</groupId> <artifactId>aio-pro</artifactId> <version>1.4.11</version> </dependency>
性能测试
-
环境准备
- 测试项目:smart-http
- 通信协议:Http
- 压测工具:wrk
- 测试机:MacBook Pro, 2.9Ghz i5, 4核8G内存
- 测试命令:
wrk -H 'Host: 10.0.0.1' -H 'Accept: text/plain,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 1024 --timeout 8 -t 4 http://127.0.0.1:8080/plaintext -s pipeline.lua -- 16
-
测试结果:smart-socket的性能表现基本稳定维持在 100MB/s 左右。
连接数 Requests/sec Transfer/sec 512 775909.66 108.03MB 1024 748988.74 104.29MB 2048 728809.24 101.48MB 4096 732603.27 102.01MB

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Sparky 2020.05 发布,用于老旧设备的 Linux 发行版
Sparky 2020.05 发布了,它属于(半)滚动更新模式,基于 Debian “Bullseye” 测试分支。 SparkyLinux 是在 Debian GNU/Linux 操作系统之上创建的 GNU/Linux 发行版,主要设计用于在老的计算机上运行,使用 Enlightenment 和 LXDE 桌面环境。 此版本主要更新内容包括: 2020 年 5 月 5 日起从 Debian“Bullseye” 测试分支升级 默认 Linux Kernel5.6.7(Sparky 非稳定存储库中使用 5.6.10和 5.7-rc4) Calamares 3.2.23 通过 Calamares 安装 Sparky 期间,禁用更新软件包列表的操作;即使通过互联网连接安装了 Sparky,Debian 或 Sparky 服务器也可以暂时关闭,因此它可能会停止安装 Openbox:由 “jgmenu” 替换为 “obmenu” 在所有 iso 镜像中添加了新软件包:“pulseaudio-module-bluetooth” 和 “fuse3” 的 “fuse” 组合 Xfce:修复了在桌面上不...
- 下一篇
Windows 版 LibreOffice 因性能问题要求使用 Clang 进行编译
LibreOffice 现在倾向于使用 LLVM Clang 而不是其他编译器来构建新的渲染代码。当回退到基于 CPU 的软件光栅化时,考虑到谷歌自己对 Skia 引擎的重视是基于 Clang 的,因此 Clang 生成的代码性能要比其他编译器好得多。所以当构建 Windows 版本的LibreOffice 7.0 时,现在对使用 Clang 提出了硬性要求。 LubošLuňák 在 LibreOffice 的 Git 代码仓库中进行了更改,以要求 Windows 上的 Skia 必须使用 Clang 编译器进行编译。使用 Skia 进行渲染是 Windows 上的默认设置,在其基于 CPU 的光栅化模式下,与 Clang 相比,“使用MSVC 编译的性能要差得多”。 理想情况下,大多数 LibreOffice 7.0 用户将使用 Skia 提供的 Vulkan 加速功能,但是对于使用较旧/不受支持的驱动程序或硬件的用户,基于 CPU 的加速功能就显得十分重要。下面的视频展示了使用 Clang(上半部分)与使用 Microsoft MSVC 构建的 LibreOffice 的性能差异...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- 设置Eclipse缩进为4个空格,增强代码规范