Tapestry5的性能改进浅析

开发 后端
本文对Tapestry5的性能改进做了一些评测,对Tapestry5的速度、内存泄露、表单应用和不同处理器和系统上的效率等方面做了比较全面的介绍。

Ben Gidley进行了一个关于Tapestry5.1.0.5的性能评测。最后,他得出的结论是:

1、Tapestry5的速度是比较快的。即使在一定的压力下Tapestry的反应时间也相当短。Tapestry并不总是最快的解决方案,但它对于我(译注:Gidley)已经足够快了。

2、Tapestry5没有内存泄漏。我以前曾经听说过Tapestry会占用大量的内存,实际上,正好相反。它使用的内存比Struts/Jsp还要少。内存使用曲线相当的平坦。

3、Tapestry5在表单应用中比struts要快。Tapestry在应用变得非常复杂的时候有一定的优势。这可能利益于其模块池技术。

4、Tapestry5不轻易崩溃,即使崩溃,也会恢复。Tapestry在极大压力的情况下确实会相应变慢,但是它会暂停或者遇到瓶颈(译注:我怀疑是作者这里有笔误,从语气和上下文来看,感觉应该不是暂停和没有瓶颈),这的确是一个好事情。另外在压力减轻之后,Tapestry能够自动恢复。

5、更多的CPU并一定会提升性能。在一系列的测试中,性能与CPU的数量并不是线性增长。2个CPU确实比一个CPU的性能翻倍了,但是4个CPU并不比2个CPU的性能翻倍。因此,建议在多个双核CPU的虚拟机上运行,而不是少数的4核CPU上运行。

6、64位比32位要快。这一点很让我惊奇。不管在Solaris还是Linux上,运行在64位JVM中要比在32位JVM要快。

7、Linux要比Open Solaris X86要快。这一点同样让我惊奇。我本来以为性能应该是相似的。

最终的结论是:Tapestry即使是对于一个大并发量的Web应用来说也已经足够快了。如果你的应用有性能问题的话,那么问题应该出在你自己本身的代码上。

Taptestry5和Struts相比,我认为差别应该是在反射的使用上(包括在java.bean.Introspector中大量的synchronization)。因此在Struts将查询参数的名称映射成JavaBean属性的时候,会比较耗时。而Tapestry5是不使用反射的,Tapestry在查询参数和JavaBean的属性之间使用一种“预编程”向量组件,也许这就是两者(Tapestry和Struts)的差别。当然,这只是猜想,如果要证实的话,是需要花费很多时间的。我认为OGNL的教训不是说反射很慢,而是在于一个关键代码上的序列存取对于性能的影响是相当大的。

最后一个小提示:我觉得在Tapestry5应用中如果把BeanModel从BeanModelSource中只提取一次,然后给Grid,BeanEditForm等等提供一个可以存取的方法,将会获得相当的性能提升。这样就不是需要每次都重建BeanModel,将减少操作的消耗。

 

【编辑推荐】

  1. Tapestry5新特性详解
  2. Apache Tapestry 5.1 最终版发布
  3. 初探下一代Web开发模式Tapestry
  4. web框架Jakarta Tapestry 4.0.1发布
  5. Eclipse 3.5更新特性一览
责任编辑:佚名 来源: BlogJava
相关推荐

2009-06-29 17:42:03

Tapestry5新特

2009-07-03 14:41:29

2009-07-03 16:33:13

Tapestry函数执

2009-07-14 14:16:03

Tapestry 5.Tapestry教程Tapestry页面

2009-07-03 14:28:03

Tapestry 5组

2020-11-01 17:13:22

DotNET 5语言gRPC

2024-10-24 08:07:25

大语言模型LLMRAG模型

2015-08-28 10:47:48

Windows 10EdgeHTML

2011-04-18 09:03:36

数据库查询

2009-06-22 14:22:41

JSF和Tapestr

2011-07-25 16:32:08

HTML 5

2010-02-04 10:27:33

Android DDM

2017-07-07 16:36:28

BIOIO模型 NIO

2013-07-12 15:17:22

BGP组网BGP协议

2009-06-24 16:16:30

JSF和Tapestr

2015-12-16 12:40:32

H5缓存机制移动

2009-05-06 09:56:22

Ruby性能改进

2009-08-21 15:06:09

C#连接字符串

2009-07-03 17:09:01

学习Tapestry

2009-11-03 09:21:26

Visual Stud
点赞
收藏

51CTO技术栈公众号