2 Star 2 Fork 0

greenlaw110 / simple-webframework-benchmark

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

Simple Web Framework Benchmark

Disclaim: This project is copied and adapted from https://github.com/networknt/light-java-example/tree/master/performance

Note: As suggested by the project name, this is a benchmark that only show very limited aspect about framework performance: how framework respond with a simple plain text message. For real comprehensive view on framework performance, please refer to https://www.techempower.com/benchmarks

Benchmark result:

Framework Max Throughput Avg Latency Transfer
Go-Fast-HTTP 1888432.99 0.94ms 226.92MB
Light Java 1678297.39 1.94ms 169.66MB
ActFramework 761081.24 4.27ms 119.76MB
Spring Boot Reactor 384186.78 4.17ms 28.21MB
Spark 291954.47 11.14ms 49.28MB
RatPack 241775.80 8.44ms 20.87MB
Go-HTTP 241484.14 7.02ms 29.71MB
JFinal 3 229960.41 8.93ms 49.12MB
Play-Java 218074.28 13.80ms 26.83MB
AKKA-HTTP 200481.39 26.26ms 29.64MB
Iris (Go) 169879.19 11.25ms 20.90MB
Jooby/Undertow 140645.13 15.91ms 20.25MB
Spring Boot Undertow 89433.13 18.88ms 12.96MB
Bootique + Jetty/Jersey 82373.78 50.39ms 14.14MB
Dropwizard 78079.06 57.73ms 7.45MB
Spring Boot Tomcat 68554.49 42.84ms 8.25MB
Payra-Micro 61703.99 63.32ms 8.71MB
WildFly Swarm 58179.11 20.08ms 7.66MB
Ninjaframework 51948.21 27.55ms 14.81MB
Play-1 50176.54 22.42ms 21.44MB
Node-express 47429.61 23.26ms 10.40MB
msf4j fail fail fail

Benchmark environment and process

The benchmark is running on my local laptop with the following configuration:

  • toshiba i7-4700MQ 16G RAM SSD
  • Linuxmint 18.1
  • Open JDK 1.8.0_121
  • go 1.6.2 linux/amd64

The benchmark tool is wrk and we are using pipeline.lua to generate more requests per second

For each testbed, we run at least twice using the command as shown below:

wrk -t4 -c128 -d30s http://localhost:8080 -s pipeline.lua --latency -- / 16

The port 8080 might be different as per project setting. Please read the README.md file inside each project to check the exact port number.

What are we benchmarking

This is a simple webframework benchmark. All framework testbed accept HTTP GET request to / and respond with text Hello World!.

For comprehensive webframework benchmark, one should refer to https://www.techempower.com/benchmarks/

Benchmark details

ActFramework

luog@luog-Satellite-P50-A:~/p/greenlaw110/FrameworkBenchmarks/frameworks/Java/act$ wrk -t4 -c256 -d15s http://localhost:5460 -s pipeline.lua --latency -- / 16
Running 15s test @ http://localhost:5460
  4 threads and 256 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     4.27ms    4.79ms 211.96ms   93.75%
    Req/Sec   191.84k    36.57k  323.23k    62.50%
  Latency Distribution
     50%    3.71ms
     75%    5.72ms
     90%    7.80ms
     99%   13.46ms
  11466144 requests in 15.07s, 1.76GB read
Requests/sec: 761081.24
Transfer/sec:    119.76MB

AKKA-HTTP

luog@luog-Satellite-P50-A:~/p/tmp/light-java-example/performance$ wrk -t4 -c128 -d30s http://localhost:8080 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:8080
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    26.26ms  128.23ms   1.83s    97.35%
    Req/Sec    51.74k    11.87k  133.70k    87.02%
  Latency Distribution
     50%    5.65ms
     75%    9.42ms
     90%   17.70ms
     99%  786.31ms
  6034389 requests in 30.10s, 0.87GB read
Requests/sec: 200481.39
Transfer/sec:     29.64MB

Bootique + Jetty/Jersey

luog@luog-Satellite-P50-A:~/p/greenlaw110/webframework-benchmark$ wrk -t4 -c128 -d30s http://localhost:8080 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:8080
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    50.39ms   61.17ms 730.72ms   85.85%
    Req/Sec    20.72k     3.54k   38.29k    71.48%
  Latency Distribution
     50%   25.08ms
     75%   69.40ms
     90%  136.04ms
     99%  273.06ms
  2476508 requests in 30.06s, 425.12MB read
Requests/sec:  82373.78
Transfer/sec:     14.14MB

Dropwizard

luog@luog-Satellite-P50-A:~/p/greenlaw110/webframework-benchmark$ wrk -t4 -c128 -d30s http://localhost:8080 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:8080
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    57.73ms   73.40ms 737.18ms   85.68%
    Req/Sec    19.64k     4.22k   42.51k    71.30%
  Latency Distribution
     50%   25.43ms
     75%   79.71ms
     90%  162.27ms
     99%  321.80ms
  2350101 requests in 30.10s, 224.12MB read
Requests/sec:  78079.06
Transfer/sec:      7.45MB

Go-Fast-HTTP

wrk -t4 -c128 -d30s http://localhost:8080 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:8080
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     0.94ms    1.14ms  41.94ms   90.79%
    Req/Sec   474.64k    56.55k  646.95k    67.17%
  Latency Distribution
     50%  621.00us
     75%    1.14ms
     90%    1.98ms
     99%    5.38ms
  56820016 requests in 30.09s, 6.67GB read
Requests/sec: 1888432.99
Transfer/sec:    226.92MB

Go-http

wrk -t4 -c128 -d30s http://localhost:8080 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:8080
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     7.02ms    6.43ms  89.62ms   86.83%
    Req/Sec    60.70k     5.54k   94.08k    72.23%
  Latency Distribution
     50%    5.25ms
     75%    9.02ms
     90%   14.87ms
     99%   31.30ms
  7254992 requests in 30.04s, 0.87GB read
Requests/sec: 241484.14
Transfer/sec:     29.71MB

Iris (go)

wrk -t4 -c128 -d30s http://localhost:8080 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:8080
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    11.25ms   10.62ms 128.91ms   86.35%
    Req/Sec    42.69k     3.67k   56.17k    69.57%
  Latency Distribution
     50%    7.83ms
     75%   15.23ms
     90%   25.21ms
     99%   49.84ms
  5104910 requests in 30.05s, 628.03MB read
Requests/sec: 169879.19
Transfer/sec:     20.90MB

JFinal 3.0

luog@luog-Satellite-P50-A:~/p/tmp/light-java-example/performance$ wrk -t4 -c128 -d30s http://localhost:8080 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:8080
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     8.93ms   12.67ms 171.84ms   92.07%
    Req/Sec    57.81k     9.61k  103.15k    79.67%
  Latency Distribution
     50%    5.20ms
     75%    9.44ms
     90%   18.31ms
     99%   71.59ms
  6921586 requests in 30.10s, 1.44GB read
Requests/sec: 229960.41
Transfer/sec:     49.12MB

Jooby

luog@luog-Satellite-P50-A:~/p/tmp/light-java-example/performance$ wrk -t4 -c128 -d30s http://localhost:8080 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:8080
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    15.91ms   13.45ms 133.45ms   75.33%
    Req/Sec    35.35k     3.46k   46.71k    69.42%
  Latency Distribution
     50%   12.45ms
     75%   22.23ms
     90%   34.20ms
     99%   60.77ms
  4221760 requests in 30.02s, 607.95MB read
Requests/sec: 140645.13
Transfer/sec:     20.25MB

light-java

luog@luog-Satellite-P50-A:~/p/tmp/light-java-example/performance$ wrk -t4 -c128 -d30s http://localhost:8080 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:8080
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     1.94ms    4.40ms 130.96ms   94.38%
    Req/Sec   422.30k    88.35k  760.32k    79.40%
  Latency Distribution
     50%  804.00us
     75%    1.90ms
     90%    4.23ms
     99%   17.76ms
  50501984 requests in 30.09s, 4.99GB read
Requests/sec: 1678297.39
Transfer/sec:    169.66MB

msf4j

luog@luog-Satellite-P50-A:~/p/tmp/light-java-example/performance$ wrk -t4 -c128 -d30s http://localhost:8080 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:8080
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    18.42ms   18.00ms  86.77ms   82.64%
    Req/Sec    10.77k     3.10k   17.82k    83.33%
  Latency Distribution
     50%   11.81ms
     75%   27.67ms
     90%   45.60ms
     99%   80.58ms
  12875 requests in 30.05s, 1.13MB read
  Socket errors: connect 0, read 270, write 0, timeout 0
Requests/sec:    428.52
Transfer/sec:     38.65KB

Note msf4j test cannot be completed due to huge number of error

2017-01-28 17:07:19 ERROR WorkerPoolDispatchingSourceHandler:127 - Error occurred inside the messaging engine
java.lang.NullPointerException
	at org.wso2.msf4j.internal.MSF4JMessageProcessor.receive(MSF4JMessageProcessor.java:69)
	at org.wso2.carbon.transport.http.netty.listener.WorkerPoolDispatchingSourceHandler.lambda$publishToWorkerPool$12(WorkerPoolDispatchingSourceHandler.java:125)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

While using ab to test with -c argument, it will halt. Looks like the server failed to release connection

Ninjaframework

luog@luog-Satellite-P50-A:~/p/tmp/light-java-example/performance$ wrk -t4 -c128 -d30s http://localhost:8080 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:8080
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    27.55ms   18.56ms 169.72ms   66.95%
    Req/Sec    13.08k     1.13k   40.77k    85.26%
  Latency Distribution
     50%   24.11ms
     75%   39.00ms
     90%   53.58ms
     99%   80.25ms
  1563624 requests in 30.10s, 445.87MB read
Requests/sec:  51948.21
Transfer/sec:     14.81MB

node-express

luog@luog-Satellite-P50-A:~/p/tmp/light-java-example/performance$ wrk -t4 -c128 -d30s http://localhost:8080 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:8080
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    23.26ms   10.97ms 193.31ms   52.16%
    Req/Sec    11.93k   577.06    13.40k    80.32%
  Latency Distribution
     50%   29.18ms
     75%   39.91ms
     90%    0.00us
     99%    0.00us
  1424427 requests in 30.03s, 312.44MB read
Requests/sec:  47429.61
Transfer/sec:     10.40MB

Payra-Micro

luog@luog-Satellite-P50-A:~/p/tmp/light-java-example/performance$ wrk -t4 -c128 -d30s http://localhost:8080 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:8080
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    63.32ms   75.53ms 971.03ms   85.91%
    Req/Sec    15.51k     2.29k   23.16k    69.57%
  Latency Distribution
     50%   32.43ms
     75%   88.55ms
     90%  167.47ms
     99%  333.34ms
  1856843 requests in 30.09s, 262.21MB read
Requests/sec:  61703.99
Transfer/sec:      8.71MB

Play-Java

luog@luog-Satellite-P50-A:~/p/tmp/light-java-example/performance$ wrk -t4 -c128 -d30s http://localhost:8080 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:8080
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    13.90ms   14.89ms 186.20ms   86.63%
    Req/Sec    54.89k     9.39k  121.86k    70.94%
  Latency Distribution
     50%    8.83ms
     75%   19.19ms
     90%   33.24ms
     99%   67.94ms
  6563656 requests in 30.10s, 807.49MB read
Requests/sec: 218074.28
Transfer/sec:     26.83MB

Playframework v1.4.x

luog@luog-Satellite-P50-A:~/p/tmp/light-java-example/performance$ wrk -t4 -c128 -d30s http://localhost:9000 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:9000
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    22.42ms   11.35ms  70.70ms   58.37%
    Req/Sec    12.61k   730.55    14.56k    75.75%
  Latency Distribution
     50%   22.14ms
     75%   32.31ms
     90%   37.47ms
     99%   43.82ms
  1505641 requests in 30.01s, 643.28MB read
Requests/sec:  50176.54
Transfer/sec:     21.44MB

RatPack

Hello World!luog@luog-Satellite-P50-A:~/p/tmp/light-java-example/performance$ wrk -t4 -c128 -d30s http://localhost:5050 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:5050
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     8.44ms    8.48ms  99.56ms   86.67%
    Req/Sec    60.85k    12.38k  115.96k    73.24%
  Latency Distribution
     50%    5.56ms
     75%   11.37ms
     90%   19.41ms
     99%   40.10ms
  7274698 requests in 30.09s, 631.33MB read
Requests/sec: 241775.80
Transfer/sec:     20.98MB

Sparkframework

luog@luog-Satellite-P50-A:~/p/tmp/light-java-example/performance$ wrk -t4 -c128 -d30s http://localhost:4567 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:4567
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    11.14ms   17.60ms 264.11ms   89.63%
    Req/Sec    73.42k    10.34k  118.73k    71.06%
  Latency Distribution
     50%    4.55ms
     75%   11.29ms
     90%   29.61ms
     99%   88.37ms
  8786831 requests in 30.10s, 1.45GB read
Requests/sec: 291954.47
Transfer/sec:     49.28MB

spring-boot-reactor

luog@luog-Satellite-P50-A:~/p/tmp/light-java-example/performance$ wrk -t4 -c128 -d30s http://localhost:3000 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:3000
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     4.17ms    3.99ms  57.24ms   87.97%
    Req/Sec    96.64k    13.88k  185.06k    73.95%
  Latency Distribution
     50%    2.96ms
     75%    5.22ms
     90%    9.15ms
     99%   19.43ms
  11557468 requests in 30.08s, 848.70MB read
Requests/sec: 384186.78
Transfer/sec:     28.21MB

spring-boot-undertow (undertow embedded)

Running 30s test @ http://localhost:8080
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    18.88ms   15.52ms 149.97ms   76.72%
    Req/Sec    22.47k     2.10k   28.28k    75.33%
  Latency Distribution
     50%   14.52ms
     75%   26.44ms
     90%   39.97ms
     99%   70.50ms
  2684368 requests in 30.02s, 389.12MB read
Requests/sec:  89433.13
Transfer/sec:     12.96MB

spring-boot-tomcat (tomcat embedded)

luog@luog-Satellite-P50-A:~/p/tmp/light-java-example/performance$ wrk -t4 -c128 -d30s http://localhost:8080 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:8080
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    42.84ms   58.42ms 794.35ms   87.61%
    Req/Sec    17.23k     3.40k   25.03k    74.56%
  Latency Distribution
     50%   19.22ms
     75%   50.19ms
     90%  117.59ms
     99%  272.61ms
  2063347 requests in 30.10s, 248.31MB read
Requests/sec:  68554.49
Transfer/sec:      8.25MB

WildFly Swarm

luog@luog-Satellite-P50-A:~/p/tmp/light-java-example/performance$ wrk -t4 -c128 -d30s http://localhost:8080 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:8080
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    20.08ms   11.37ms 143.50ms   64.97%
    Req/Sec    14.63k     1.66k   22.76k    85.75%
  Latency Distribution
     50%   20.55ms
     75%   29.25ms
     90%   38.70ms
     99%    0.00us
  1749499 requests in 30.07s, 230.25MB read
Requests/sec:  58179.11
Transfer/sec:      7.66MB
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright 2017 greenlaw110 Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

一个简单的webframework性能测试项目 展开 收起
Java
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/greenlaw110/simple-webframework-benchmark.git
git@gitee.com:greenlaw110/simple-webframework-benchmark.git
greenlaw110
simple-webframework-benchmark
simple-webframework-benchmark
master

搜索帮助