测试环境说明:
用 Play! 框架随便弄一个简单的应用,然后分别用 Play 自带的服务器运行,另外一种是发布成war并用tomcat来运行。
在我的笔记本上测试,没有连接任何数据库,只是简单的输出一个文本信息。
50 个并发,共10000个请求。
下面是详细的测试结果(请注意看红色粗体部分):
1. Play!
C:\Users\Administrator>ab -c 50 -n 10000 http://liudong:9000/bye
This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
Benchmarking liudong (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Finished 10000 requests
Server Software: Play!
Server Hostname: liudong
Server Port: 9000
Document Path: /bye
Document Length: 4 bytes
Concurrency Level: 50
Time taken for tests: 52.854023 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 3920000 bytes
HTML transferred: 40000 bytes
Requests per second: 189.20 [#/sec] (mean)
Time per request: 264.270 [ms] (mean)
Time per request: 5.285 [ms] (mean, across all concurrent requests)
Transfer rate: 72.43 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.4 0 6
Processing: 161 263 28.9 250 583
Waiting: 160 263 28.8 250 583
Total: 161 263 28.9 250 583
Percentage of the requests served within a certain time (ms)
50% 250
66% 254
75% 264
80% 298
90% 302
95% 306
98% 335
99% 355
100% 583 (longest request)
2. Tomcat 的测试结果
C:\Users\Administrator>ab -c 50 -n 10000 http://liudong/bye
This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
Benchmarking liudong (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Finished 10000 requests
Server Software: Apache-Coyote/1.1
Server Hostname: liudong
Server Port: 80
Document Path: /bye
Document Length: 4 bytes
Concurrency Level: 50
Time taken for tests: 26.199498 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 3870000 bytes
HTML transferred: 40000 bytes
Requests per second: 381.69 [#/sec] (mean)
Time per request: 130.997 [ms] (mean)
Time per request: 2.620 [ms] (mean, across all concurrent requests)
Transfer rate: 144.24 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 2.0 0 54
Processing: 2 129 211.3 93 3182
Waiting: 2 128 211.2 92 3182
Total: 2 129 211.3 93 3186
Percentage of the requests served within a certain time (ms)
50% 93
66% 135
75% 158
80% 171
90% 201
95% 288
98% 642
99% 1450
100% 3186 (longest request)
这么简单的应用,性能居然差了一倍,看来 Play! 自带的用 MINA 实现的 Web 服务器性能一般。
不是mina的问题,是play实现的问题,需要修改两处代码,具体改哪儿等我找到了贴出来;改完后的性能我以前测试下来是差不多的
1、play不管有没有用数据库都会打开一个事务,把这个去掉性能会提高1倍
2、用prod运行性能会提高很多
是不是设置为prod模式了?如果打包成war的话,貌似是默认设置为prod模式,否则就是dev模式,性能是差别很大的。
公平起见,二者都是在 DEV 模式下测试的。
我也不认为是mina问题,应是mina设置不对,如线程池大小,这些mina应有设的
莫非我记错了?我记得使用war命令生成war包时必须是prod模式。何不测试以下prod模式?记得Google Grop上有人提过次问题。
我担心的是play里面,用到的groovy,python这些动态语言的实现,如果有必要的,能不能用java重写这部分实现,这些动态的跟java相比运行速度会不会有影响呢?
od模式下的性能数据呢?根据我的经验 MINA 实现的 Web 服务器比tomcat的性能好的多。
用play这个框架,怎么能监控到她最后生成的SQL?
如果实现一对多和或者多对多的关联对象,这样我取主对象的时候,但只想用到子对象中的一个字段,
play是不是把这两个对象的多有字段都取出来啊?
类似select a.* ,b.* from a,b where a.id=b.parent_id
分享到:
相关推荐
Play Framework 是一个开源的Web应用框架,用于构建现代、高性能的Java和Scala应用程序。它采用模型-视图-控制器(MVC)架构模式,并且强调简洁的代码和开发的即时反馈。Play Framework API 是开发者使用该框架进行...
- **持续优化性能**:随着技术的发展,Play Framework 将继续优化其性能表现,更好地满足高并发场景的需求。 - **增强安全性措施**:面对日益复杂的网络安全威胁,Play Framework 将不断加强安全防护机制。 - **拓展...
Play Framework框架的缓存机制用于提高应用程序的性能。该缓存机制提供了灵活的缓存配置,支持缓存 expire 和缓存清理等。 十、Play Framework框架的测试 Play Framework框架的测试是非常重要的,该框架提供了灵活...
- **定义与背景**:Play Framework 是一款基于 Java 和 Scala 的高性能、轻量级 Web 开发框架。它采用 RESTful 架构设计,支持热重载功能,能够显著提高开发效率。本书(《Play Framework Cookbook》)提供了超过 60...
PlayFramework是一个高性能的Java和Scala框架,它支持Web应用的快速开发,并且主要面向RESTful应用程序。在PlayFramework中,为了确保数据的准确性和合法性,通常会在数据保存到数据库之前,对HTTP请求中的参数进行...
在“Playframework框架学习之路 1”中,我们可能要探讨这个框架的基础概念、安装过程以及如何创建一个简单的应用。下面将详细介绍Play Framework的关键知识点。 1. **快速开发**: Play Framework以其快速开发能力而...
而"playframework-2.7.9"可能是一个解压后的目录,其中包含了框架的全部源代码、库文件、示例项目、构建脚本等。 Play Framework的核心特性包括: 1. **异步编程模型**:Play Framework利用Akka Actor系统实现非...
然后,《playframework_api.rar》则是Play Framework的最新API文档。API文档是开发者日常工作中不可或缺的参考资料,它详尽地列出了框架的所有类、接口、方法,方便开发者查找和使用。 最后,是《play——demo.rar...
- **知识点概述**:Play Framework 内置了强大的缓存机制,开发者可以轻松地理解和利用这些功能来提升应用性能。 - **应用场景**:适用于需要频繁访问数据库或其他外部服务的数据密集型应用,通过缓存可以显著减少...
Play-Utils 模块是为 Play Framework 设计的一个强大且实用的工具集合,它极大地提升了开发者在使用 Play Framework 进行 Java Web 开发时的效率和便利性。Play Framework 是一个开源的、基于 MVC(模型-视图-控制器...
《Play Framework 框架手册》是一份深入介绍Play框架的文档,主要涵盖了从基础概念到高级特性的全面内容,适合初学者和经验丰富的开发者参考。以下是对手册中部分核心知识点的详细阐述: 1. **MVC应用程序模型**:...
Play Framework是一个开源的Java和Scala应用框架,专为构建现代Web应用程序而设计。它强调了简洁的代码、直观的API和实时开发体验,使得开发者能够快速地构建高性能、可维护的Web应用。在这个"play framework测试...
#### Play框架与其它Java Web框架的比较 - **Spring MVC**:传统企业级框架,功能丰富,需要较多配置,适用于需要高度定制的应用程序。 - **JavaServer Faces (JSF)**:用于构建组件化用户界面的Java规范,适合复杂...
Play Framework 是一个基于Java和Scala的高性能Web应用框架,它提供了快速开发、可测试和敏捷迭代的能力。在Play Framework中,安全模块是一个重要的组件,它帮助开发者实现基本的认证(Authentication)和授权...
#### 九、Playframework的问题 尽管Play框架有许多优点,但也存在一些挑战,比如学习曲线、社区支持等方面的问题。这些问题可能会影响开发者的选择。 #### 十、Play Framework平台的性能比较 与其他Web框架相比,...
### Play Framework Cookbook Second Edition 关键知识点解析 #### 一、Play Framework 概述 - **定义与背景**:Play Framework 是一个开源的 Web 开发框架,适用于 Java 和 Scala,特别强调高生产力、易于测试和可...
Play Framework以其独特的设计理念,如自动热部署、无状态架构和强大的模板引擎,为Java开发者提供了一个高效、敏捷的Web开发平台。通过学习和掌握上述知识点,开发者能够更好地利用Play Framework构建高性能、可...
### Playframework Cookbook 知识点解析 #### 一、Play Framework 概览 - **框架定位**:Play Framework 是一个开源的、轻量级的 Web 应用开发框架,主要面向 Java 和 Scala 开发者。它支持现代 web 开发的需求,...
在压缩包中的“playframework-3.0.1”目录下,可能包含了以下内容: - **源代码**:提供了Play Framework 3.0.1的完整源码,供开发者学习和二次开发。 - **文档**:可能包括开发者指南、API参考、教程等,帮助...