2

我正在学习 Lift 框架。我使用来自 git://github.com/lift/lift_25_sbt.git 的项目模板并使用container:start sbt 命令启动服务器。

这个模板应用程序只显示简单的菜单。如果我使用apache 的ab来衡量性能,那它就很糟糕。我错过了提高性能的基础知识?

C:\Program Files\Apache Software Foundation\httpd-2.0.64\Apache2\bin>ab -n 30 -c
 10 http://127.0.0.1:8080/
Benchmarking 127.0.0.1 (be patient).....done

Server Software:        Jetty(8.1.7.v20120910)
Server Hostname:        127.0.0.1
Server Port:            8080

Document Path:          /
Document Length:        2877 bytes

Concurrency Level:      10
Time taken for tests:   8.15625 seconds
Complete requests:      30
Failed requests:        0
Write errors:           0
Total transferred:      96275 bytes
HTML transferred:       86310 bytes
Requests per second:    3.74 [#/sec] (mean)
Time per request:       2671.875 [ms] (mean)
Time per request:       267.188 [ms] (mean, across all concurrent requests)
Transfer rate:          11.73 [Kbytes/sec] received
4

2 回答 2

2

您是否在生产模式下运行它?我发现我在开发中有 30 rps,但在生产模式下超过 250。(https://www.assembla.com/spaces/liftweb/wiki/Run_Modes

于 2013-04-09T04:49:30.383 回答
1
  • 如前所述,您应该在生产模式下运行 Lift。这是获得良好性能的主要关键。所有模板都以这种方式缓存,并应用其他优化。
  • 如果你想衡量一些不是抽象和理论的东西,那么你应该给 JVM 时间“热身”,应用它的 JIT 优化。因此,您应该首先应用〜数千个请求并完全忽略它们(必须是几秒钟)。之后,测量一个已经启动的服务器的真实性能
  • 有一些轻微的 JVM 优化,尽管它们对我来说更像是一种 hack,并且提升不超过 20%
  • 其他小技巧包括使用 nginx 提供静态内容,在专用服务器而不是 Simple Build Tool 中启动应用程序等。
于 2013-04-09T16:23:09.567 回答