#benchmark #benchmarks #performance #web-frameworks

Nate 36ea656b91 Java/ninja revert transactional change so data persists (#3217) 7 år sedan
.github bfec79ba27 Update PULL_REQUEST_TEMPLATE.md 8 år sedan
deployment 3c4fb21d85 To remove locale errors/warnings 7 år sedan
frameworks 979f2efa38 Java/ninja revert transactional change so data persists (#3217) 7 år sedan
toolset 0c05177c80 Revert "Install resin with gcc-6 in separate directory (#3189)" (#3225) 7 år sedan
.gitignore 4cc5c07aba Php optimize (#3165) 7 år sedan
.mailmap 66235b61f7 Update mailmap 10 år sedan
.mention-bot 9e28577b21 Add .travis.yml to mention-bot blacklist (#2814) 8 år sedan
.travis.yml 0997b2b15b Add Peachpie to PHP frameworks (#3207) 7 år sedan
LICENSE d701e1cf4e [DOC] Update license year (#2461) 8 år sedan
README.md cdcd2ffa65 WIP: Started work on a scaffolding init process (#3176) 7 år sedan
benchmark.cfg.example ec4387f5c5 Add support for specifying concurrency levels for plaintext test (#3068) 7 år sedan

README.md

Welcome to TechEmpower Framework Benchmarks (TFB)

Build Status Documentation Status Issue Stats Issue Stats

If you're new to the project, welcome! Please feel free to ask questions here. We encourage new frameworks and contributors to ask questions. We're here to help!

This project provides representative performance measures across a wide field of web application frameworks. With much help from the community, coverage is quite broad and we are happy to broaden it further with contributions. The project presently includes frameworks on many languages including Go, Python, Java, Ruby, PHP, C#, Clojure, Groovy, Dart, JavaScript, Erlang, Haskell, Scala, Perl, Lua, C, and others. The current tests exercise plaintext responses, JSON seralization, database reads and writes via the object-relational mapper (ORM), collections, sorting, server-side templates, and XSS counter-measures. Future tests will exercise other components and greater computation.

Read more and see the results of our tests on Amazon EC2 and physical hardware. For descriptions of the test types that we run, see the test requirements section.

If you find yourself in a directory or file that you're not sure what the purpose is, checkout our file structure in our documenation, which will briefly explain the use of relevant directories and files.

Quick Start Guide

Get started developing quickly by utilizing vagrant with TFB. Git, Virtualbox and vagrant are required.

  1. Clone TFB.

    $ git clone https://github.com/TechEmpower/FrameworkBenchmarks.git
    
  2. Move into the vagrant-development directory.

    $ cd FrameworkBenchmarks/deployment/vagrant
    
  3. Turn on the VM (takes at least 20 minutes).

    $ vagrant up
    
  4. Enter the VM.

    $ vagrant ssh
    
  5. Move into the FrameworkBenchmarks directory in the vm.

    vagrant@TFB-all:~$ cd ~/FrameworkBenchmarks
    
  6. Run a test.

    vagrant@TFB-all:~/FrameworkBenchmarks$ tfb --mode verify --test beego
    

Add a New Test

Once you open an SSH connection to your vagrant box, start the new test initialization wizard.

    vagrant@TFB-all:~/FrameworkBenchmarks$ tfb --new

This will walk you through the entire process of creating a new test to include in the suite.

Official Documentation

Our official documentation can be found at frameworkbenchmarks.readthedocs.org. If you find any errors or areas for improvement within the docs, feel free to either submit a pull request or issue at the documentation repository.

If you have a results.json file that you would like to visualize, you can do that here(these will be visualized using the metadata from the last known round; if you are adding a new test, it will not visualize anything).

Contributing

The community has consistently helped in making these tests better, and we welcome any and all changes. Reviewing our contribution practices and guidelines will help to keep us all on the same page. The contribution guide can be found in the TFB documentation.

Join in the conversation at our Google Group, or chat with us on Freenode at #techempower-fwbm.