Java使用不同的框架对性能有多少影响?
Java使用不同的框架对性能有多少影响?最近了解了JFinal对开发速度有很大的提高..代码量超级少.... 所以我想了解下~不同开发框架会对性能有多大影响? 像与SpringMVC+Hibernate+Spring这样来比较..会不会差距很大.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(33)
应该是的~
必须写SQL呀,哪怕Hibernate也要写,,,只是Hibernate的一对多,多对多也是由注解来完成,加注解不就是另一种形式的SQL么?
jfinal多表关联查询,也是写Sql吗?
引用来自“东胜神洲”的评论
任何东西的存在,都是为了解决问题而存在。
File 这个类为了解决问题,nio 框架也是为了解决问题,Hadoop 同样也是为了解决问题。。。这些玩艺儿都是为了解决问题而存在。。我们是因问题而选择所需要的工具,而不是拿工具来强行去解决问题。
如何选择工具?。。这就要你去了解这些工具存在,是为了解决什么问题。。例如,struts 的存在,是为了解决http请求 与 Java 请求处理类的映射问题,避免了 Servlet 将所有处理都堆在 get/post等 方法中,造成了方法臃肿、维护困难等问题。但是,如果你的应用,就是那么三、四个请求,提交的参数来来去去就几个,用 struts 结果因为引入框架所带来的额外工作,从而造成新问题。
又如 hibernate 之类的,试图解决的是 ORM 问题,而不是性能问题。如果你的项目需要性能,你还是选 Hibernate ,这是 Hibernate 的错?
还是开发界古老相传的那句话:没有银弹
他不是啥都没干~而是都帮你干好了
回复
Struts相比servlet是复杂化了调用过程。。
回复
啥都没干。。php的框架是啥都帮你做好了。。但是java的框架真的是啥都没干。。
@Brin想写程序 不过真的没接触php的框架.谢谢赐教
回复
撇开hibernate我不说,实在是封装得太过了,struts还是基于servlet的,模板模式的最直接应用,你可以试试写纯servet有多大的区别,spring的核心也就是帮我们管理了bean的加载,依赖注入在容器启动时都初始化好了,真心没觉得性能有什么问题,aop整个就一解决方案,解决类的扩展问题,如果非要认为这些都是问题,那我只能呵呵了...
引用来自“Brin想写程序”的评论
引用来自“Brin想写程序”的评论
java这种高性能的语言,就是被框架毁掉的。。
我一直觉得java用框架不如直接用php。
我不是怕~我只是希望可以找到个开发快 维护方便 而且性能又不错的框架..
@caotian 嗯~我现在就是问JFinal的性能问题.
回复
git@osc上不是有个很火的jFinal么,可以试试
回复
JFinal性能再差,也比SSH强。
不过其实我现在在考虑的主要是开发速度,但是性能也必须得跟上,JFinal封装那么多我怕性能上会有很大影响.
@Brin想写程序 此话何解呢?在哪些方面有优势?
引用来自“Brin想写程序”的评论
java这种高性能的语言,就是被框架毁掉的。。
我一直觉得java用框架不如直接用php。
回复
没有spring,所以业务类加载更快,没有hibernate,sql更有效率。
引用来自“Brin想写程序”的评论
java这种高性能的语言,就是被框架毁掉的。。
我一直觉得java用框架不如直接用php。
java这种高性能的语言,就是被框架毁掉的。。
我一直觉得java用框架不如直接用php。
谢谢~就orm这方面已经足够了
有测试吗?
嗯~有道理...需求不断变化~那么我们框架也应该不断变化吗?
nio不是框架,是库。。
关键struts没有解决这个问题啊。。原来的一堆servlet,现在变成了一堆action。。
非常赞同
任何东西的存在,都是为了解决问题而存在。
File 这个类为了解决问题,nio 框架也是为了解决问题,Hadoop 同样也是为了解决问题。。。这些玩艺儿都是为了解决问题而存在。。我们是因问题而选择所需要的工具,而不是拿工具来强行去解决问题。
如何选择工具?。。这就要你去了解这些工具存在,是为了解决什么问题。。例如,struts 的存在,是为了解决http请求 与 Java 请求处理类的映射问题,避免了 Servlet 将所有处理都堆在 get/post等 方法中,造成了方法臃肿、维护困难等问题。但是,如果你的应用,就是那么三、四个请求,提交的参数来来去去就几个,用 struts 结果因为引入框架所带来的额外工作,从而造成新问题。
又如 hibernate 之类的,试图解决的是 ORM 问题,而不是性能问题。如果你的项目需要性能,你还是选 Hibernate ,这是 Hibernate 的错?
还是开发界古老相传的那句话:没有银弹
把大神都引来了
谢谢这个详细的解释。顿时对JFinal充满兴趣。一直被老师误导着。一直以为框架就会对项目利大于弊。现在明白到不同项目选择框架也是一种学问。
回复
SSH框架也有好处,在大型的、正规的公司,他们可以用框架本身的约束来规范开发。但反过来想,如果流程和规范做得好,JFinal一样可以达到要求。。。框架只是工具而已
回复
JFinal 一样也可以做好规范,但作为一个框架并不想限制开发者的创造力
回复
我说的和你是一个意思呀。。。
不同框架的性能差距是非常大的,曾有 jfinal 用户反馈过他的测试结果,jfinal 比 SSH 性能快 8 倍左右。
JFinal 对于性能的提升主要有两个方面的追求。第一是追求所要执行的代码量最小化。第二是追求尽可能不创建对象。
追求所要执行的代码量最小化就好比某个人做事情,如果需要做的事情越少,那么他必定完成得越早。
追求尽可能不创建对象其一可以节省创建对象消耗的时间,其二可以节省消耗的内存。
通过在 Controller 中设置断点可以观察到从 jfinal 接管请求,到 jfinal 把调用交给开发者action 方法的调用层次是只有五层,而 SSH 多达几十层,可想而之性参会差多少。