light4j一个轻量级的低延时、高吞吐量、内存占用量小的API平台
1、背景(abstract)
笔者算是一个极客类型的程序员了。喜欢探索一些程序内在的原理、稳定性、自动化运维、健壮性,很多时间也会
去对程序的内存使用率、cpu使用率锱铢必较。尽量克扣掉不必要的cpu和内存资源,这在一定程序上能节省成本,比如
笔者曾经在阿里云托管java web服务器,1GHz/1G的虚拟主机,使用了springMVC,由于使用的jar包比较多,占用cpu和
内存资源多,远程ssh连接到服务器时几乎不能在有空闲的资源响应我的请求。那个程序不“疾”而终。然后就没有然后了。
做过个人站的小伙伴应该体会过到这种痛,对于刚起步的站长,托管费用那是相当不小的开销,很多人没熬过盈利/收支平衡
就悄无声息的关闭网站了。一次偶然的机会在国外论坛看到一个框架light4j,性能不错。抱着试试看的心态,有了这篇文章。
2、light4j介绍
根据项目发起人Steve hu项目最早命名是Light (weight)Java,取轻量简洁之意,后因为Oracle联系到他,迫于一些原因改成Light4j。
框架主要使用J2SE中的API,一方面这些API经过社区的打磨验证,整体来说稳定性和性能相对来说自然比第三方框架好,笔者空闲之余看过
一些组件的代码,正如作者所说基本没有使用第三方框架,大道至简大概是作者的本意吧。
作者早起从事过J2EE开发,那个时候项目编译时间一次要半小时以上,深受其害,因此也有了这个框架的产生。笔者工作早起又有类
似的经历,给某药业集团开发过仓储管理系统(WMS),使用J2EE即使,修改代码后编译一次web项目半个多小时,编译以后再运行,是否正确
还不能确定,发现问题再重新编译一次,又是半个小时,真是骂爹骂娘都没用。编译好了,然后备份恢复oracle数据,一次2小时,并不能保证成功,
一次项目升级一直到早晨4点还没成功。
据Steve Hu介绍,目前该框架已经在加拿大,美国的确有稳定客户。行业涉及:银行,医疗、政府、企业。
某医疗行业,病人通过穿戴式的医疗材料/设备采集数据,使用light4j重构项目以后,服务器处理量变多;还有一些银行行业都获得了良好的口碑
和稳定的合作关系。目前国内有某银行正在洽谈合作、还有阿里巴巴也在洽谈相关合作。
框架目前主要有两个分支 2.x(JDK11)和 1.6(JDK8),国内目前使用JDK1.8比较多,可以下载1.6分支代码回来学习,使用。
3、评测数据
我们先来看看这个框架在国外网站的评测(2019-07-09数据)
json序列化:https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=json&l=zik0vz-f
light4j排第4,spring排53


light4j在json序列化方面是spring的18.92倍
纯文本处理:https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=plaintext&l=zik0vz-f
light4j排行14,spring排56


文本处理方面,light4j是spring的50.55倍。
web项目,我们一般使用接口返回json,另外则是返回html(纯文本),通过上面评测数据看得出,light4j的确在这两个方面比spring
快了很多。单位时间内处理的数据量大了,接口响应延时也会变短。
以下是官网的一些微服务测试数据。spring阵营最大吞吐量243240.17,light4j最大吞吐量1344512.65,light4j是spring的50.52倍。
光看上面的数据还是比较吸引人的。笔者接下来将引导大家像,springboot那样,通过网站下载一个demo回来了解这个框架。
light4j中文钉钉群 21975907,欢迎小伙伴加入一起学习。
light4j一个轻量级的低延时、高吞吐量、内存占用量小的API平台的更多相关文章
- Solon,一个轻量级的应用开发框架。发布官网喽!!!
官网发布: https://solon.noear.org/ 项目简介: Solon,是一个轻量级的应用开发框架.更快.更小.更自由! 支持JDK8+:主框架0.1Mb:组合不同的插件应对不同需求:方 ...
- 学界| UC Berkeley提出新型分布式框架Ray:实时动态学习的开端—— AI 应用的系统需求:支持(a)异质、并行计算,(b)动态任务图,(c)高吞吐量和低延迟的调度,以及(d)透明的容错性。
学界| UC Berkeley提出新型分布式框架Ray:实时动态学习的开端 from:https://baijia.baidu.com/s?id=1587367874517247282&wfr ...
- 低延时的P2P HLS直播技术实践
本文根据4月21日OSC源创会·武汉站的现场分享为蓝本,重新整理.以下是演讲内容: 近几年,随着直播.短视频等视频领域对带宽要求的提升以及CDN行业竞争的加剧,很多CDN公司开始往P2P-CDN方向发 ...
- [转帖]技术扫盲:新一代基于UDP的低延时网络传输层协议——QUIC详解
技术扫盲:新一代基于UDP的低延时网络传输层协议——QUIC详解 http://www.52im.net/thread-1309-1-1.html 本文来自腾讯资深研发工程师罗成的技术分享, ...
- kafka 基础知识梳理-kafka是一种高吞吐量的分布式发布订阅消息系统
一.kafka 简介 今社会各种应用系统诸如商业.社交.搜索.浏览等像信息工厂一样不断的生产出各种信息,在大数据时代,我们面临如下几个挑战: 如何收集这些巨大的信息 如何分析它 如何及时做到如上两点 ...
- EasyNVR无插件直播服务器软件览器低延时播放监控摄像头视频(EasyNVR播放FLV视频流)
背景描述 EasyNVR的使用者应该都是清楚的了解到,EasyNVR一个强大的功能就是可以进行全平台的无插件直播.主要原因在于rtsp协议的视频流(默认是需要插件才可以播放的)经由EasyNVR处理可 ...
- EasyNVR无插件摄像机直播之:摄像机网页低延时无插件直播实现
背景需求 对于摄像机直播,客户反馈的最多就是实现web直播.摆脱插件,可以自定义集成等问题, 对于熟悉EasyNVR已经完美的解决了这些问题.然而对于web播放也存在一些问题,通常我们web播放RTM ...
- 浏览器低延时播放监控摄像头RTSP海康大华硬盘录像机NVR视频(EasyNVR播放FLV视频流)
背景描述 EasyNVR的使用者应该都是清楚的知道,EasyNVR一个强大的功能就是可以进行全平台的无插件直播.主要原因在于rtsp协议的视频流(默认是需要插件才可以播放的)经由EasyNVR处理后可 ...
- HALC:用于长读取错误纠正的高吞吐量算法
背景: 第三代PacBio SMRT长读取可以有效地解决第二代测序技术的读长问题,但包含大约15%的测序错误.已经设计了几种纠错算法以有效地将错误率降低到1%,但是它们丢弃了大量未校正的碱基,因此导致 ...
随机推荐
- Tensorcore使用方法
用于深度学习的自动混合精度 深度神经网络训练传统上依赖IEEE单精度格式,但在混合精度的情况下,可以训练半精度,同时保持单精度网络的精度.这种同时使用单精度和半精度表示的技术称为混合精度技术. 混合 ...
- Win10上的Docker应用:Hello World
前言: 最近学习了Docker相关技术点,国内关于Docker的资料大多是基于Linux系统的,但是我对Linux又不熟(实际上没用过,掩面哭笑.Jpg). 好在在Win10下也是支持Docker的, ...
- ffmpeg的源码调试
转自:windows下使用Visual Studio编译可以调试的FFmpeg 2017年01月05日 13:33:39 阅读数:3654 因本人主要在windows环境下开发,Linux下的gpb调 ...
- 项目Beta冲刺(团队)--6/7
课程名称:软件工程1916|W(福州大学) 作业要求:项目Beta冲刺 团队名称:葫芦娃队 作业目标:进行新一轮的项目冲刺,尽力完成并完善项目 团队博客 队员学号 队员昵称 博客地址 04160242 ...
- Discuz! X3 数据字典
pre_common_admincp_cmenu 后台菜单收藏表 字段名 数据类型 默认值 允许非空 自动递增 备注 id smallint(6) unsigned NO 是 title v ...
- 数组的filter方法处理数组内对象元素时,会改变原值
arr = [{n:11},{n:22},{n:33}] arr.filter(v=>v.n=8) console.log(arr) // [{n:8},{n:8},{n:8}]
- runloop事件、UI更新、observer与coranimation
一.触摸事件派发与视图绘制打包 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ __dispatchPreprocessedEve ...
- js语言评价--js 基于哈希表、原型链、作用域、属性类型可配置的多范式编程语言
js 基于哈希表.原型链.作用域.属性类型可配置的多范式编程语言 值类型.引用类型.直接赋值: 原型是以对象形式存在的类型信息. ECMA-262把对象定义为:无序属性的集合,其属性可以包含基本值,对 ...
- For 32-bit BOOL is a signed char, whereas under 64-bit it is a bool.
https://stackoverflow.com/questions/31267325/bool-with-64-bit-on-ios/31270249#31270249 Definition of ...
- hihocoder#1046: K个串
[传送门] 这种区间内相同数字只能被统计一次/只有区间内数字都不相同才对答案有贡献的题都可以用扫描线扫右端点,表示当前区间右端点为$r$.然后当前线段树/树状数组维护区间左端点为$[1,r)$时对应的 ...