- Notifications
You must be signed in to change notification settings - Fork1
Source for the TechEmpower Framework Benchmarks project
License
adam-fowler/FrameworkBenchmarks
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Welcome toTechEmpower Framework Benchmarks (TFB)
If you're new to the project, welcome! Please feel free to ask questionshere. 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 includingGo
,Python
,Java
,Ruby
,PHP
,C#
,F#
,Clojure
,Groovy
,Dart
,JavaScript
,Erlang
,Haskell
,Scala
,Perl
,Lua
,C
, and others. The current tests exercise plaintext responses, JSON serialization, 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 cloud and physical hardware. For descriptions of the test types that we run, see thetest requirements section.
If you find yourself in a directory or file that you're not sure what the purpose is, checkout ourfile structure in our documentation, which will briefly explain the use of relevant directories and files.
To get started developing you'll need to installdocker or see ourQuick Start Guide using vagrant
Clone TFB.
$ git clone https://github.com/TechEmpower/FrameworkBenchmarks.git
Change directories
$ cd FrameworkBenchmarks
Run a test.
$ ./tfb --mode verify --test gemini
The run script is pretty wordy, but each and every flag is required. If you are using windows, either adapt the docker command at the end of the./tfb
shell script (replacing${SCRIPT_ROOT}
with/c/path/to/FrameworkBenchmarks
), or use vagrant.
The command looks like this:docker run -it --rm --network tfb -v /var/run/docker.sock:/var/run/docker.sock -v [FWROOT]:/FrameworkBenchmarks techempower/tfb [ARGS]
-it
tells docker to run this in 'interactive' mode and simulate a TTY, so thatctrl+c
is propagated.--rm
tells docker to remove the container as soon as the toolset finishes running, meaning there aren't hundreds of stopped containers lying around.--network=tfb
tells the container to join the 'tfb' Docker virtual network- The first
-v
specifies which Docker socket path to mount as a volume in the running container. This allows docker commands run inside this container to use the host container's docker to create/run/stop/remove containers. - The second
-v
mounts the FrameworkBenchmarks source directory as a volume to share with the container so that rebuilding the toolset image is unnecessary and any changes you make on the host system are available in the running toolset container. techempower/tfb
is the name of toolset container to run
- Docker expects Linux-style paths. If you cloned on your
C:\
drive, then[ABS PATH TO THIS DIR]
would be/c/FrameworkBenchmarks
. - Docker for Windows understands
/var/run/docker.sock
even though that is not a valid path on Windows, but only when using Linux containers (it doesn't work with Windows containers and LCOW).Docker Toolboxmay not understand/var/run/docker.sock
, even when using Linux containers - use at your own risk.
Get started developing quickly by utilizing vagrant with TFB.Git,Virtualbox andvagrant arerequired.
Clone TFB.
$ git clone https://github.com/TechEmpower/FrameworkBenchmarks.git
Change directories
$ cd FrameworkBenchmarks/deployment/vagrant
Build the vagrant virtual machine
$ vagrant up
Run a test
$ vagrant ssh $ tfb --mode verify --test gemini
Either on your computer, or 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.
Our official documentation can be found in thewiki.If you find any errors or areas for improvement within the docs, feel free to open an issue in this repo.
Results of continuous benchmarking runs are available in real timehere.
If you have aresults.json
file that you would like to visualize, you cando that here. You can also attach arunid
parameter to that url whererunid
is a run listed ontfb-status like so:https://www.techempower.com/benchmarks/#section=test&runid=fd07b64e-47ce-411e-8b9b-b13368e988c6.If you want to visualize them or compare different results files on bash, here is an unofficialplaintext results parser
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. Thecontribution guide can be found in theTFB documentation.
Join in the conversation in theDiscussions tab, onTwitter, or chat with us onFreenode at#techempower-fwbm
.
About
Source for the TechEmpower Framework Benchmarks project
Resources
License
Code of conduct
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Languages
- C++17.2%
- Java14.8%
- PHP11.4%
- Dockerfile7.7%
- C#6.1%
- Python5.7%
- Other37.1%