论坛首页 Java企业应用论坛

造了个轮子^_^,firefly应用程序框架,性能大幅超越spring3MVC和Struts2,含测试报告

浏览 18301 次
精华帖 (1) :: 良好帖 (7) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-01-03   最后修改:2011-01-03

现在的开源框架都是大而全,动辄xxMB的jar包,感觉用不了那么多的功能,而且性能有些不尽如人意。所以还是自己造个轮子吧。

 

firefly的特性

  • 高性能,性能大幅超越spring3、struts2等,详情请看性能测试报告
  • 精简、轻量、无侵入,firefly.jar只有44k
  • core包含IOC、MVC、Interceptor等常用功能
  • 使用简单,基于约定优于配置的思想,默认使用Annotation配置方式

 

firefly的使用风格类似Spring3,具体可以看

http://code.google.com/p/firefly/wiki/guide

 

代码已经发布到 google code ,有兴趣的同学可以一起来开发

http://code.google.com/p/firefly/

 

 

测试环境

  • windows7 jdk1.6.0_22
  • JDK参数:-Xms128m -Xmx512m -XX:+DisableExplicitGC
  • 服务器:jetty 6.1.25
  • CPU: T6600 内存:3G
  • 测试工具:JMeter

用例1测试报告

往JSP打印“你好 firefly!”

500线程,循环2次

取跑10次之后的成绩

框架 版本 吞吐量 错误率
fireflyMVC 1.0-SNAPSHOT 38910.506/分钟 0%
Servlet 2.5 38022.814/分钟 0%
Spring3MVC 3.0.5.RELEASE 13106.16/分钟 0%
Struts2 2.2.1.1 1256.571/分钟 0%

 

用例1

往JSP打印“你好 firefly!”

JSP代码

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
        <title>firefly</title>
</head>
<body>
        ${hello}
</body>
</html>

 

firefly测试代码

        @RequestMapping(value = "/hello")
        public String index(HttpServletRequest request) {
                request.setAttribute("hello", "你好 firefly!");
                return "/index.jsp";
        }

 

Servlet测试代码

        @Override
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                        throws ServletException, IOException {
                request.setAttribute("hello", "你好 firefly!");
                request.getRequestDispatcher("/WEB-INF/page/index.jsp").forward(
                                request, response);
        }

 

Spring3MVC测试代码

        @RequestMapping(value="/spring", method=RequestMethod.GET)
        public String index(HttpServletRequest request) {
                request.setAttribute("hello", "你好 firefly!");
                return "/index";
        }

 

Struts2测试代码

    public String execute() throws Exception {
        setMessage("你好 firefly!");
        return SUCCESS;
    }

 

   发表时间:2011-01-03   最后修改:2011-02-15

firefly的使用的例子,帖子里面实在是贴不下了,直接上传pdf文档好了,jar包有打包好的在google code上面

 

0 请登录后投票
   发表时间:2011-01-03   最后修改:2011-01-03
Your search did not generate any results.
You may want to remove some terms from your query.
好像不可以下载,没有打好的包吗?
0 请登录后投票
   发表时间:2011-01-03   最后修改:2011-02-15
peterwei 写道
Your search did not generate any results.
You may want to remove some terms from your query.
好像不可以下载,没有打好的包吗?



现在已经把打好的firefly.jar放到 google code 上面去了,不过建议还是下载源码自己编译打包,那样maven可以自动拉取依赖包

 

svn地址: http://firefly.googlecode.com/svn/trunk/firefly-core

0 请登录后投票
   发表时间:2011-01-03   最后修改:2011-01-03
目前还准备新加入一些功能,追加一些有用的前端控件,json输出部分也准备自己开发高性能的json输出,摆脱对jackson的依赖,有兴趣的同学,希望也一起来参与开发吧,firefly的主旨就是追求最高的性能,保持精简。
0 请登录后投票
   发表时间:2011-01-03  
看起来灰常不错啊。
是得迁下来看看。
0 请登录后投票
   发表时间:2011-01-03  
有服务器端的验证么?
0 请登录后投票
   发表时间:2011-01-03  
godson_2003 写道
有服务器端的验证么?


这个可以考虑增加^_^,还准备增加像Spring3那样的请求参数自动包装到javabean的功能,这个功能要大量的反射,对性能有多大的影响还不得而知,要尽量保持最高的性能
0 请登录后投票
   发表时间:2011-01-03  
支持下 感觉有了服务器段验证 就可以用了
0 请登录后投票
   发表时间:2011-01-03  
有什么优势 ?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics