JFinal在真正生产环境的性能如何

JFinal的极速开发真的太爽了,但是爽了之后,我总是担心这个小框架能否跟Spring等大框架媲美呢,能否真正在大型的高并发的生产环境使用呢?还是说JFinal只能定位到小型私活这个领域。

JFinal有没有大型项目的案例,或者有没有性能方面的真实测试报告

评论区

JFinal

2016-09-22 12:20

性能是 jfinal 极度关注的,对于性能 jfinal 做了太多的努力,随便举几个例子:
1:尽可能少地创建对象
2:尽可能少地执行代码,即尽可能少地调用方法也即尽可能短的调用栈
3:对热点代码重点优化,例如 Invocation 这个类
4:尽可能不使用java反射
5:在不可避免要使用反射时,在系统启动时一次性解决,例如 jfinal 的路由与action的映射关系是在系统启动时通过反射建立的,服务启动完成以后不再需要反射匹配路由的动作
6:极简设计,概念最少化,极薄封装,从架构上保障性能最大化

有用户与 SSH 做过性能测试对比,jfinal 性能是 SSH 的 4.56 倍,这里找到一个压力测试的贴子,可以看一下:https://www.oschina.net/news/90815/jfinal-3-3

JFinal

2016-09-22 12:26

jfinal 有很多大型项目已经运行多年,例如 trafree.com ,每天千万级别的请求,去哪儿和淘宝旅行都用的他们的 API,12 台服务器做集群,性能非常好

有一个比较普遍的误解认为 jfinal 只适合做小型项目,其实 jfinal 更加适合做大型项目,只需要引入业务层就好,有这种误解可能是看到 jfinal demo 中没有业务层造成的。

现在炒得比较热的微服务,也即大型项目拆分成小型服务做分布式 + 集群的方式,这个其实在很多年前巨头公司都是这样做的,本质就是老祖宗说的分而治之,jfinal 作为一个 web + orm 框架,可以处于这些微服务之中,无论你多大的项目 jfinal 都可以用

zhaoweijing2003

2016-09-22 13:15

@JFinal 太棒了,期待ing

zhaoweijing2003

2016-09-22 13:18

@JFinal JFinal还是超赞的,这样的话,大家就可以放心的用在生产环节中了。

似水流言1

2016-09-22 13:19

期待啊~~~

JFinal

2016-09-22 13:31

@zhaoweijing2003 @似水流言1 多多关注社区动态,文档频道功能已经做好,正在添加内容的阶段,前两章添加完后就正式开放了

zhaoweijing2003

2016-09-22 13:35

无为

2016-09-22 20:57

@JFinal 期待 "文档" 频道

Romeo

2016-09-23 10:25

@JFinal 波总,请问集群怎么理解,同样的项目部署在多个服务器吗,分布式与集群区别是哪里?我理解的分布式是按照业务模块来部署代码的,这样对吗?

JFinal

2016-09-23 20:10

@Romeo 集群是指同样源码的项目部署成多个实例,请求到来的时候通过负载均衡软件或硬件来分配到某一个实例去处理

分布式是指多个不同源码的项目实例,并发处理同一个请求分解而成的子任务,处理过程根据特点可能是串行也可能是并行

集群相当于一个事情来了一个人做完,分布式相当于一个事情来了,多个人做不同的部分共同完成

想必分布式 + 集群就不必解释了,是这两种模式的组合

fangjunai

2016-09-25 07:30

@JFinal 我也很期待 "文档" 频道

JFinal

2016-09-25 11:36

@fangjunai 多多关注社区动态

SteveRogers

2017-09-19 08:06

哈哈哈,放心大胆的使用

欲风217

2017-10-09 16:54

@JFinal 期待“文档”频道。基于 jfinal-weixin 开发的程序已经投入生产环境 8 个月了,没有任何问题(当然用户也不多)。近期领导要对架构服务能力做个测试,希望“文档”频道也包含这些内容。

SGT186

2017-11-07 11:34

我现在用JFinal做保险的API接口,每天查询订单的量在11-13万之前,就一个接口服务器,已运行2个月,未见系统框架问题。

Willson_L

2017-11-21 15:59

@JFinal jfinal 怎么使用分布式,现在的分布式几乎都是用 spring 整合的。但是 jfinal 中我又不想加入 spring,感觉不伦不类的,请问一下,jfinal 和 dubbo 有很好的整合方案么?有没有例子?

JFinal

2017-11-21 16:58

@Willson_L jfinal 是 MVC + ORM 框架,在本质上与分布式是无关的。 你的每一个分布式节点可以是一个独立的 jfinal 项目,然后用 doubbo 这类分布式支持系统来管理起来

建议参考 @海哥 的 jboot 项目中有关分布式的用法,里面有多种分布式方案:
https://gitee.com/fuhai/jboot

简单来说, web 框架与分布式没有本质联系,spring 的分布式仍然也是整合,你仍然还是要学习被整合的 dubbo 这类技术的使用

fox

2017-12-18 17:52

@JFinal 这个文档频道在哪儿看?

lanmeng

2018-04-08 15:32

大数据分页性能低,最好是能够提供多种选择模式,比如传入总页码,或者传入计算count的sql语句。

Fancye

2018-04-28 14:16

@JFinal 你这个解释好透彻!

麓龙

2019-02-15 11:18

jfinal是一个非常不错的框架