- 浏览: 85299 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
sp42:
挺好的哦!
造了个轮子,更新2.0版了:-),firefly一站式java web框架 -
j2ee_yohn:
如果是多台机器如何做集群。我的配置都没有成功。单台机器是成功的 ...
配置terracotta高可用集群 -
wzjin:
原来参数是get方式输入的。
http://localhost ...
造了个轮子,更新2.0版了:-),firefly一站式java web框架 -
wzjin:
有实例比较好,firefly-2.0_01.zip里面的模板实 ...
造了个轮子,更新2.0版了:-),firefly一站式java web框架 -
yangyi:
拦截器过滤器之类的一般比较耗性能,正交性的优雅是以性能为代价的 ...
struts2的性能为什么这么差,有性能测试截图
现在的开源框架都是大而全,动辄xxMB的jar包,感觉用不了那么多的功能,而且性能有些不尽如人意。所以还是自己造个轮子吧。
firefly的特性
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; }
评论
37 楼
Norther
2011-01-05
请问童鞋你里面有什么特殊的算法,神奇的Magic处理让你的这个库变的飞快,让大家开开眼。
36 楼
hypercube1024
2011-01-05
<div class="quote_title">aninfeel 写道</div>
<div class="quote_div">spring mvc3 是可以把请求参数注入到action方法的参数里的,而你的action方法只剩下request、response参数了。而且它的view不止是jsp,还有验证功能貌似也没有把。要模仿它应该还有一段路要走,到时模仿全了性能就不知道怎么样了。</div>
<p><br><br><br>请求参数注入到方法参数里面已经实现了^_^,现在的版本可以把请求参数注入到javabean里面,具体的用法和Spring也差不多,由于在之前的回帖里面,估计没有看到~~~,自动注入请求参数,我也大概测试了一下,比普通的注入request性能下降5%-10%吧</p>
<div class="quote_div">spring mvc3 是可以把请求参数注入到action方法的参数里的,而你的action方法只剩下request、response参数了。而且它的view不止是jsp,还有验证功能貌似也没有把。要模仿它应该还有一段路要走,到时模仿全了性能就不知道怎么样了。</div>
<p><br><br><br>请求参数注入到方法参数里面已经实现了^_^,现在的版本可以把请求参数注入到javabean里面,具体的用法和Spring也差不多,由于在之前的回帖里面,估计没有看到~~~,自动注入请求参数,我也大概测试了一下,比普通的注入request性能下降5%-10%吧</p>
35 楼
vb2005xu
2011-01-05
我下下来学习了
感觉优势 就是 迷你
感觉优势 就是 迷你
34 楼
aninfeel
2011-01-05
spring mvc3 是可以把请求参数注入到action方法的参数里的,而你的action方法只剩下request、response参数了。而且它的view不止是jsp,还有验证功能貌似也没有把。要模仿它应该还有一段路要走,到时模仿全了性能就不知道怎么样了。
33 楼
hypercube1024
2011-01-04
caoyangx 写道
不错,很喜欢,自己写一个框架很有成就感,我会一直关注的。
不得不说,NUTZ当初也很小,也是走着高性能路线。不过使用人群越来越多,需要支持的功能也越来越多,jar的体积自然越来越大,性能和当初轻装上阵的Nutz比,也略显差别。
其实自己写框架,就是为了方便开发自己熟悉领域的应用,一旦开源,有了用户,有了和你志同道合的参与者,你的框架也许会发生改变,也许改变会翻天覆地的。但为了自己的作品有一个好的未来,必须要改变,这也许很矛盾,不过也没办法。要么锋利无比但无人问津,要么家喻户晓却臃肿不堪。
最后以一首范玮琪的歌曲《最初的梦想》结尾,送给那些怀揣着自己的梦想,至今仍努力打拼的朋友们。
不得不说,NUTZ当初也很小,也是走着高性能路线。不过使用人群越来越多,需要支持的功能也越来越多,jar的体积自然越来越大,性能和当初轻装上阵的Nutz比,也略显差别。
其实自己写框架,就是为了方便开发自己熟悉领域的应用,一旦开源,有了用户,有了和你志同道合的参与者,你的框架也许会发生改变,也许改变会翻天覆地的。但为了自己的作品有一个好的未来,必须要改变,这也许很矛盾,不过也没办法。要么锋利无比但无人问津,要么家喻户晓却臃肿不堪。
最后以一首范玮琪的歌曲《最初的梦想》结尾,送给那些怀揣着自己的梦想,至今仍努力打拼的朋友们。
多些支持^_^,性能和小巧是要坚持的,其实更多的是方便自己项目开发,开发一个项目堆积动辄几十MB的开源库,总归是很不爽的
32 楼
caoyangx
2011-01-04
不错,很喜欢,自己写一个框架很有成就感,我会一直关注的。
不得不说,NUTZ当初也很小,也是走着高性能路线。不过使用人群越来越多,需要支持的功能也越来越多,jar的体积自然越来越大,性能和当初轻装上阵的Nutz比,也略显差别。
其实自己写框架,就是为了方便开发自己熟悉领域的应用,一旦开源,有了用户,有了和你志同道合的参与者,你的框架也许会发生改变,也许改变会翻天覆地的。但为了自己的作品有一个好的未来,必须要改变,这也许很矛盾,不过也没办法。要么锋利无比但无人问津,要么家喻户晓却臃肿不堪。
最后以一首范玮琪的歌曲《最初的梦想》结尾,送给那些怀揣着自己的梦想,至今仍努力打拼的朋友们。
不得不说,NUTZ当初也很小,也是走着高性能路线。不过使用人群越来越多,需要支持的功能也越来越多,jar的体积自然越来越大,性能和当初轻装上阵的Nutz比,也略显差别。
其实自己写框架,就是为了方便开发自己熟悉领域的应用,一旦开源,有了用户,有了和你志同道合的参与者,你的框架也许会发生改变,也许改变会翻天覆地的。但为了自己的作品有一个好的未来,必须要改变,这也许很矛盾,不过也没办法。要么锋利无比但无人问津,要么家喻户晓却臃肿不堪。
最后以一首范玮琪的歌曲《最初的梦想》结尾,送给那些怀揣着自己的梦想,至今仍努力打拼的朋友们。
31 楼
yangguo
2011-01-04
很不错,赞一个。千万不要臃肿化。
30 楼
hypercube1024
2011-01-04
6407977 写道
freish 写道
弱弱的问一句,Firefly不是那个收费的、难用的、银行喜欢用的源码版本控制工具么?
确实是个版本控制工具呵呵,我在光大银行
看来名字冲突啊~~~
29 楼
6407977
2011-01-04
freish 写道
弱弱的问一句,Firefly不是那个收费的、难用的、银行喜欢用的源码版本控制工具么?
确实是个版本控制工具呵呵,我在光大银行
28 楼
hypercube1024
2011-01-04
superxgz 写道
LZ有空的时候写个简单的WEB应用看看贝
嗯,功能稳定之后,做个完整的demo
27 楼
superxgz
2011-01-04
LZ有空的时候写个简单的WEB应用看看贝
26 楼
smzd
2011-01-04
不错不错,最近新兴工具狠时尚啊
25 楼
guofengcn
2011-01-04
强烈的支持!有时做个东西,不一定就非得有在真正的项目上,纯粹的为了兴趣,更靠谱!
24 楼
xhdwell
2011-01-04
为什么叫firefly,不是有个版本管理软件叫firefly吗?
23 楼
hypercube1024
2011-01-04
<p>明天就要上班了,上班之前再更新了两个功能^_^</p>
<p> </p>
<p>主要增加了两个特性,</p>
<p> </p>
<p>1)ApplicationContext .getBean() 改成泛型的,这样就不用强制类型转换了。</p>
<p> </p>
<p style="margin: 0px;">public interface ApplicationContext {</p>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;"><span style="white-space: pre;"> </span><T> T getBean(Class<T> clazz);</p>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;"><span style="white-space: pre;"> </span><T> T getBean(String id);</p>
<p style="margin: 0px;">}</p>
<p style="margin: 0px;"> </p>
<p>2) 增加了request请求参数自动封装到javabean功能</p>
<p><span style="font-family: arial, sans-serif; font-size: 13px;">
</span></p>
<ul style="padding-left: 40px;">
<li>自动封装请求参数到javabean,只要把方法的参数标记上@HttpParam<a style="color: #0000cc;" href="http://code.google.com/p/firefly/w/edit/HttpParam">?</a>即可,@HttpParam<a style="color: #0000cc;" href="http://code.google.com/p/firefly/w/edit/HttpParam">?</a>.value()是可选值,当不为空的时候会自动把Book对象setAttribute里面</li>
</ul>
<pre class="prettyprint"><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">@RequestMapping</span><span class="pun" style="color: #666600;">(</span><span class="pln" style="color: #000000;">value </span><span class="pun" style="color: #666600;">=</span><span class="pln" style="color: #000000;"> </span><span class="str" style="color: #008800;">"/book/add"</span><span class="pun" style="color: #666600;">)</span><span class="pln" style="color: #000000;">
</span><span class="kwd" style="color: #000088;">public</span><span class="pln" style="color: #000000;"> </span><span class="typ" style="color: #660066;">String</span><span class="pln" style="color: #000000;"> gotoCreateBook</span><span class="pun" style="color: #666600;">()</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">{</span><span class="pln" style="color: #000000;">
</span><span class="kwd" style="color: #000088;">return</span><span class="pln" style="color: #000000;"> </span><span class="str" style="color: #008800;">"/book_create.jsp"</span><span class="pun" style="color: #666600;">;</span><span class="pln" style="color: #000000;">
</span><span class="pun" style="color: #666600;">}</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">@RequestMapping</span><span class="pun" style="color: #666600;">(</span><span class="pln" style="color: #000000;">value </span><span class="pun" style="color: #666600;">=</span><span class="pln" style="color: #000000;"> </span><span class="str" style="color: #008800;">"/book/create"</span><span class="pun" style="color: #666600;">,</span><span class="pln" style="color: #000000;"> method </span><span class="pun" style="color: #666600;">=</span><span class="pln" style="color: #000000;"> </span><span class="typ" style="color: #660066;">HttpMethod</span><span class="pun" style="color: #666600;">.</span><span class="pln" style="color: #000000;">POST</span><span class="pun" style="color: #666600;">)</span><span class="pln" style="color: #000000;">
</span><span class="kwd" style="color: #000088;">public</span><span class="pln" style="color: #000000;"> </span><span class="typ" style="color: #660066;">String</span><span class="pln" style="color: #000000;"> createBook</span><span class="pun" style="color: #666600;">(</span><span class="lit" style="color: #006666;">@HttpParam</span><span class="pun" style="color: #666600;">(</span><span class="str" style="color: #008800;">"book"</span><span class="pun" style="color: #666600;">)</span><span class="pln" style="color: #000000;"> </span><span class="typ" style="color: #660066;">Book</span><span class="pln" style="color: #000000;"> book</span><span class="pun" style="color: #666600;">)</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">{</span><span class="pln" style="color: #000000;">
book</span><span class="pun" style="color: #666600;">.</span><span class="pln" style="color: #000000;">setSell</span><span class="pun" style="color: #666600;">(</span><span class="kwd" style="color: #000088;">true</span><span class="pun" style="color: #666600;">);</span><span class="pln" style="color: #000000;">
book</span><span class="pun" style="color: #666600;">.</span><span class="pln" style="color: #000000;">setText</span><span class="pun" style="color: #666600;">(</span><span class="str" style="color: #008800;">"测试当前book"</span><span class="pun" style="color: #666600;">);</span><span class="pln" style="color: #000000;">
book</span><span class="pun" style="color: #666600;">.</span><span class="pln" style="color: #000000;">setId</span><span class="pun" style="color: #666600;">(</span><span class="lit" style="color: #006666;">90</span><span class="pun" style="color: #666600;">);</span><span class="pln" style="color: #000000;">
</span><span class="kwd" style="color: #000088;">return</span><span class="pln" style="color: #000000;"> </span><span class="str" style="color: #008800;">"/book.jsp"</span><span class="pun" style="color: #666600;">;</span><span class="pln" style="color: #000000;">
</span><span class="pun" style="color: #666600;">}</span></pre>
<p>页面book.jsp</p>
<pre class="prettyprint"><span class="dec" style="color: #660066;"><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"><html></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"><head></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"><title></span><span class="pln" style="color: #000000;">firefly</span><span class="tag" style="color: #000088;"></title></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"></head></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"><body></span><span class="pln" style="color: #000000;">
| ${book.id} | ${book.title} | ${book.text} | ${book.price} | ${book.sell} |
</span><span class="tag" style="color: #000088;"></body></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"></html></span></pre>
<p>页面book_create.jsp</p>
<pre class="prettyprint"><span class="dec" style="color: #660066;"><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"><html></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"><head></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"><title></span><span class="pln" style="color: #000000;">firefly</span><span class="tag" style="color: #000088;"></title></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"></head></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"><body></span><span class="pln" style="color: #000000;">
<form action="</span><span class="tag" style="color: #000088;"><c:url</span><span class="pln" style="color: #000000;"> </span><span class="atn" style="color: #660066;">value</span><span class="pun" style="color: #666600;">=</span><span class="atv" style="color: #008800;">"/app/book/create"</span><span class="tag" style="color: #000088;">></c:url></span><span class="pln" style="color: #000000;">" method="POST">
书名:</span><span class="tag" style="color: #000088;"><input</span><span class="pln" style="color: #000000;"> </span><span class="atn" style="color: #660066;">type</span><span class="pun" style="color: #666600;">=</span><span class="atv" style="color: #008800;">"text"</span><span class="pln" style="color: #000000;"> </span><span class="atn" style="color: #660066;">name</span><span class="pun" style="color: #666600;">=</span><span class="atv" style="color: #008800;">"title"</span><span class="tag" style="color: #000088;">></input><br/></span><span class="pln" style="color: #000000;">
价格:</span><span class="tag" style="color: #000088;"><input</span><span class="pln" style="color: #000000;"> </span><span class="atn" style="color: #660066;">type</span><span class="pun" style="color: #666600;">=</span><span class="atv" style="color: #008800;">"text"</span><span class="pln" style="color: #000000;"> </span><span class="atn" style="color: #660066;">name</span><span class="pun" style="color: #666600;">=</span><span class="atv" style="color: #008800;">"price"</span><span class="tag" style="color: #000088;">></input><br/></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"><input</span><span class="pln" style="color: #000000;"> </span><span class="atn" style="color: #660066;">type</span><span class="pun" style="color: #666600;">=</span><span class="atv" style="color: #008800;">"submit"</span><span class="pln" style="color: #000000;"> </span><span class="atn" style="color: #660066;">value</span><span class="pun" style="color: #666600;">=</span><span class="atv" style="color: #008800;">"提交"</span><span class="tag" style="color: #000088;">></input></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"></form></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"></body></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"></html></span></pre>
<p>输入价格:324 书名:fdsfsdf 后显示结果</p>
<pre class="prettyprint"><span class="pun" style="color: #666600;">|</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">90</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">|</span><span class="pln" style="color: #000000;"> fdsfsdf </span><span class="pun" style="color: #666600;">|</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">测试当前</span><span class="pln" style="color: #000000;">book </span><span class="pun" style="color: #666600;">|</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">324.0</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">|</span><span class="pln" style="color: #000000;"> </span><span class="kwd" style="color: #000088;">true</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">|</span><span class="pln" style="color: #000000;"> </span></pre>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>主要增加了两个特性,</p>
<p> </p>
<p>1)ApplicationContext .getBean() 改成泛型的,这样就不用强制类型转换了。</p>
<p> </p>
<p style="margin: 0px;">public interface ApplicationContext {</p>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;"><span style="white-space: pre;"> </span><T> T getBean(Class<T> clazz);</p>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;"><span style="white-space: pre;"> </span><T> T getBean(String id);</p>
<p style="margin: 0px;">}</p>
<p style="margin: 0px;"> </p>
<p>2) 增加了request请求参数自动封装到javabean功能</p>
<p><span style="font-family: arial, sans-serif; font-size: 13px;">
</span></p>
<ul style="padding-left: 40px;">
<li>自动封装请求参数到javabean,只要把方法的参数标记上@HttpParam<a style="color: #0000cc;" href="http://code.google.com/p/firefly/w/edit/HttpParam">?</a>即可,@HttpParam<a style="color: #0000cc;" href="http://code.google.com/p/firefly/w/edit/HttpParam">?</a>.value()是可选值,当不为空的时候会自动把Book对象setAttribute里面</li>
</ul>
<pre class="prettyprint"><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">@RequestMapping</span><span class="pun" style="color: #666600;">(</span><span class="pln" style="color: #000000;">value </span><span class="pun" style="color: #666600;">=</span><span class="pln" style="color: #000000;"> </span><span class="str" style="color: #008800;">"/book/add"</span><span class="pun" style="color: #666600;">)</span><span class="pln" style="color: #000000;">
</span><span class="kwd" style="color: #000088;">public</span><span class="pln" style="color: #000000;"> </span><span class="typ" style="color: #660066;">String</span><span class="pln" style="color: #000000;"> gotoCreateBook</span><span class="pun" style="color: #666600;">()</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">{</span><span class="pln" style="color: #000000;">
</span><span class="kwd" style="color: #000088;">return</span><span class="pln" style="color: #000000;"> </span><span class="str" style="color: #008800;">"/book_create.jsp"</span><span class="pun" style="color: #666600;">;</span><span class="pln" style="color: #000000;">
</span><span class="pun" style="color: #666600;">}</span><span class="pln" style="color: #000000;">
</span><span class="lit" style="color: #006666;">@RequestMapping</span><span class="pun" style="color: #666600;">(</span><span class="pln" style="color: #000000;">value </span><span class="pun" style="color: #666600;">=</span><span class="pln" style="color: #000000;"> </span><span class="str" style="color: #008800;">"/book/create"</span><span class="pun" style="color: #666600;">,</span><span class="pln" style="color: #000000;"> method </span><span class="pun" style="color: #666600;">=</span><span class="pln" style="color: #000000;"> </span><span class="typ" style="color: #660066;">HttpMethod</span><span class="pun" style="color: #666600;">.</span><span class="pln" style="color: #000000;">POST</span><span class="pun" style="color: #666600;">)</span><span class="pln" style="color: #000000;">
</span><span class="kwd" style="color: #000088;">public</span><span class="pln" style="color: #000000;"> </span><span class="typ" style="color: #660066;">String</span><span class="pln" style="color: #000000;"> createBook</span><span class="pun" style="color: #666600;">(</span><span class="lit" style="color: #006666;">@HttpParam</span><span class="pun" style="color: #666600;">(</span><span class="str" style="color: #008800;">"book"</span><span class="pun" style="color: #666600;">)</span><span class="pln" style="color: #000000;"> </span><span class="typ" style="color: #660066;">Book</span><span class="pln" style="color: #000000;"> book</span><span class="pun" style="color: #666600;">)</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">{</span><span class="pln" style="color: #000000;">
book</span><span class="pun" style="color: #666600;">.</span><span class="pln" style="color: #000000;">setSell</span><span class="pun" style="color: #666600;">(</span><span class="kwd" style="color: #000088;">true</span><span class="pun" style="color: #666600;">);</span><span class="pln" style="color: #000000;">
book</span><span class="pun" style="color: #666600;">.</span><span class="pln" style="color: #000000;">setText</span><span class="pun" style="color: #666600;">(</span><span class="str" style="color: #008800;">"测试当前book"</span><span class="pun" style="color: #666600;">);</span><span class="pln" style="color: #000000;">
book</span><span class="pun" style="color: #666600;">.</span><span class="pln" style="color: #000000;">setId</span><span class="pun" style="color: #666600;">(</span><span class="lit" style="color: #006666;">90</span><span class="pun" style="color: #666600;">);</span><span class="pln" style="color: #000000;">
</span><span class="kwd" style="color: #000088;">return</span><span class="pln" style="color: #000000;"> </span><span class="str" style="color: #008800;">"/book.jsp"</span><span class="pun" style="color: #666600;">;</span><span class="pln" style="color: #000000;">
</span><span class="pun" style="color: #666600;">}</span></pre>
<p>页面book.jsp</p>
<pre class="prettyprint"><span class="dec" style="color: #660066;"><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"><html></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"><head></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"><title></span><span class="pln" style="color: #000000;">firefly</span><span class="tag" style="color: #000088;"></title></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"></head></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"><body></span><span class="pln" style="color: #000000;">
| ${book.id} | ${book.title} | ${book.text} | ${book.price} | ${book.sell} |
</span><span class="tag" style="color: #000088;"></body></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"></html></span></pre>
<p>页面book_create.jsp</p>
<pre class="prettyprint"><span class="dec" style="color: #660066;"><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"><html></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"><head></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"><title></span><span class="pln" style="color: #000000;">firefly</span><span class="tag" style="color: #000088;"></title></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"></head></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"><body></span><span class="pln" style="color: #000000;">
<form action="</span><span class="tag" style="color: #000088;"><c:url</span><span class="pln" style="color: #000000;"> </span><span class="atn" style="color: #660066;">value</span><span class="pun" style="color: #666600;">=</span><span class="atv" style="color: #008800;">"/app/book/create"</span><span class="tag" style="color: #000088;">></c:url></span><span class="pln" style="color: #000000;">" method="POST">
书名:</span><span class="tag" style="color: #000088;"><input</span><span class="pln" style="color: #000000;"> </span><span class="atn" style="color: #660066;">type</span><span class="pun" style="color: #666600;">=</span><span class="atv" style="color: #008800;">"text"</span><span class="pln" style="color: #000000;"> </span><span class="atn" style="color: #660066;">name</span><span class="pun" style="color: #666600;">=</span><span class="atv" style="color: #008800;">"title"</span><span class="tag" style="color: #000088;">></input><br/></span><span class="pln" style="color: #000000;">
价格:</span><span class="tag" style="color: #000088;"><input</span><span class="pln" style="color: #000000;"> </span><span class="atn" style="color: #660066;">type</span><span class="pun" style="color: #666600;">=</span><span class="atv" style="color: #008800;">"text"</span><span class="pln" style="color: #000000;"> </span><span class="atn" style="color: #660066;">name</span><span class="pun" style="color: #666600;">=</span><span class="atv" style="color: #008800;">"price"</span><span class="tag" style="color: #000088;">></input><br/></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"><input</span><span class="pln" style="color: #000000;"> </span><span class="atn" style="color: #660066;">type</span><span class="pun" style="color: #666600;">=</span><span class="atv" style="color: #008800;">"submit"</span><span class="pln" style="color: #000000;"> </span><span class="atn" style="color: #660066;">value</span><span class="pun" style="color: #666600;">=</span><span class="atv" style="color: #008800;">"提交"</span><span class="tag" style="color: #000088;">></input></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"></form></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"></body></span><span class="pln" style="color: #000000;">
</span><span class="tag" style="color: #000088;"></html></span></pre>
<p>输入价格:324 书名:fdsfsdf 后显示结果</p>
<pre class="prettyprint"><span class="pun" style="color: #666600;">|</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">90</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">|</span><span class="pln" style="color: #000000;"> fdsfsdf </span><span class="pun" style="color: #666600;">|</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">测试当前</span><span class="pln" style="color: #000000;">book </span><span class="pun" style="color: #666600;">|</span><span class="pln" style="color: #000000;"> </span><span class="lit" style="color: #006666;">324.0</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">|</span><span class="pln" style="color: #000000;"> </span><span class="kwd" style="color: #000088;">true</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">|</span><span class="pln" style="color: #000000;"> </span></pre>
<p> </p>
<p> </p>
<p> </p>
22 楼
hypercube1024
2011-01-04
xiangkun 写道
shoru 写道
比servlet还快?什么情况?
+1
这个属于测试误差,性能基本和Servlet持平的
21 楼
xiangkun
2011-01-03
shoru 写道
比servlet还快?什么情况?
+1
20 楼
shoru
2011-01-03
比servlet还快?什么情况?
19 楼
itstarting
2011-01-03
勇气可嘉,不过这个看上去还挺山寨的感觉,哈哈
Spring MVC 包括了很多其他的功能,比如binding/validation等,等你的框架功能对等以后,性能就真不好说了
不是说guice的AOP性能比spring强很多吗,但spring还是活的风生水起
对于企业应用软件,在一定程度上来说,单点的性能已经不是特别特别在意的了,关键点还是在于:
1)成本可控——快速开发
2)扩展性高——适应变化(当然了也包括性能需求的变化)
3)安全稳定——可用性和可维护下问题
诸如此类
Spring MVC 包括了很多其他的功能,比如binding/validation等,等你的框架功能对等以后,性能就真不好说了
不是说guice的AOP性能比spring强很多吗,但spring还是活的风生水起
对于企业应用软件,在一定程度上来说,单点的性能已经不是特别特别在意的了,关键点还是在于:
1)成本可控——快速开发
2)扩展性高——适应变化(当然了也包括性能需求的变化)
3)安全稳定——可用性和可维护下问题
诸如此类
18 楼
skzr.org
2011-01-03
<div class="quote_title">我的机器core2 P8400 2.26G</div>
<div class="quote_title">测试时tomcat参数:-server -Xmx64M</div>
<div class="quote_title">应该不至于很差吧,单核机器就算了^ ^</div>
<div class="quote_title">hypercube1024 写道</div>
<div class="quote_div">
<div class="quote_title">skzr.org 写道</div>
<div class="quote_div">
<div class="quote_title">这个测试的和我测试的不一样</div>
<div class="quote_title">tomcat7 maxThread=10,mvc例子:jsp页面打印 hello world!</div>
<p><span>MVC测试:<br>使用ab -n 10000 -c 20 测试一个helloworld control!<br>spring3 mvc访问jsp速度高达5、6K/s<br>struts2(关闭log,关闭开发模式即devMode=false) mvc最高还达不到2K/s</span></p>
<div class="quote_title">不知道为什么,出入不小阿?</div>
</div>
<p>我在我的笔记本测试的,配置比较差哈^_^,基本上目前firefly和Servlet性能是持平的,但是Spring3MVC和Servlet还是有一定差距</p>
</div>
<p> </p>
<div class="quote_title">测试时tomcat参数:-server -Xmx64M</div>
<div class="quote_title">应该不至于很差吧,单核机器就算了^ ^</div>
<div class="quote_title">hypercube1024 写道</div>
<div class="quote_div">
<div class="quote_title">skzr.org 写道</div>
<div class="quote_div">
<div class="quote_title">这个测试的和我测试的不一样</div>
<div class="quote_title">tomcat7 maxThread=10,mvc例子:jsp页面打印 hello world!</div>
<p><span>MVC测试:<br>使用ab -n 10000 -c 20 测试一个helloworld control!<br>spring3 mvc访问jsp速度高达5、6K/s<br>struts2(关闭log,关闭开发模式即devMode=false) mvc最高还达不到2K/s</span></p>
<div class="quote_title">不知道为什么,出入不小阿?</div>
</div>
<p>我在我的笔记本测试的,配置比较差哈^_^,基本上目前firefly和Servlet性能是持平的,但是Spring3MVC和Servlet还是有一定差距</p>
</div>
<p> </p>
发表评论
-
nginx负载均衡配置
2010-09-19 17:56 1579#user nobody; worker_proces ... -
jetty使用terracotta集群配置
2010-09-19 15:08 47031, 复制jetty-terracotta-sessions- ... -
配置terracotta高可用集群
2010-09-19 10:57 7642由于terracotta肩负着保存session的重任,如果一 ... -
tomcat使用terracotta集群配置
2010-09-17 13:17 2395tomcat的session同步方案会把session复制到每 ... -
一些java命令和工具的使用
2010-09-08 11:20 1064jinfo:可以输出并修改运行时的java 进程的opts。 ... -
使用flex4制作带进度条的多文件上传
2010-09-01 11:17 4651普通的html表单提交无法一次选择多文件上传,并且显示上传进度 ... -
apache + jk + tomcat 负载均衡与集群配置
2010-08-23 15:56 11061,copy mod_jk.so 到 apache 的 mod ... -
struts2的性能为什么这么差,有性能测试截图
2010-05-31 06:16 10858最近觉得struts2性能感觉好差,然后就对struts2和s ...
相关推荐
Firefly Algorithm for constrained optimization using % % for the design of a spring (benchmark) % % by Xin-She Yang (Cambridge University) Copyright @2009
Firefly Algorithm for Constrained Optimization
Firefly optimization
it is a firefly algorithm to find the FC is the total fuel cost and EC is the total emission. The transmission losses Pl can be found either from load flow or using Bmn coefficients. The multi- ...
优化算法,基于萤火虫优化算法FA,主要程序为fa
firefly algorithm for optimizatioon
Fireflies are the most charismatic insects when compared with others. The major features of fireflies are their flashing light that has two basic features. The first featureconcerns with the ...
基本FA算法
Firefly for spanning tree
firefly_linux_docker_defconfig.zip firefly_linux_docker_defconfig.zip firefly_linux_docker_defconfig.zip
本萤火虫算法是用于求解二维函数优化问题,备注较为详细,且程序动态展示了寻优过程,适合想学习了解萤火虫算法的初学者
一个萤火虫算法,很好用的。只需要换测试函数即可。不过请注意例如萤火虫个数的等参数的更换。
萤火虫优化算法,可以扩展应用到各种不同的优化问题。
Firefly_Algorithm源代码 Firefly_Algorithm源代码 Firefly_Algorithm源代码 Firefly_Algorithm源代码
原始fa算法程序-演化算法,可用于优化计算,适用于连续变量
Optimasi dari penerapan algoritma kunang kunang yang akan menjujung masa depan yang sangat cerah dimana semuanya akan menjadi cepat dan efektif. dan tidak ada lagi rules yang parah seperti ini
GGSO,萤火虫算法实现最优解问题,轮盘赌实现随机数选择
Firefly-RK3399的Android10中的pdf_20211123_1657.7z a4_portrait_rgbb.pdf a5_portrait_rgbb.pdf a5_portrait_rgbb_1_6_printscaling_default.pdf a5_portrait_rgbb_1_6_printscaling_none.pdf aacDecoder.pdf ...
38613152GSOS_fireflyalgorithm_萤火虫_firefly_萤火虫算法_源码.zip
38613152GSOS_fireflyalgorithm_萤火虫_firefly_萤火虫算法.zip