Nate 0096f84ee9 Config for the new toolset (#6259) %!s(int64=4) %!d(string=hai) anos
..
README.md 107df41838 Add the facil.io framework (#3197) %!s(int64=7) %!d(string=hai) anos
bench_app.c 85f5df99a4 update facil.io version (#4366) %!s(int64=6) %!d(string=hai) anos
benchmark_config.json 9dffec78f7 C tests for docker (#3304) %!s(int64=7) %!d(string=hai) anos
config.toml 0096f84ee9 Config for the new toolset (#6259) %!s(int64=4) %!d(string=hai) anos
facil.io.dockerfile 0096f84ee9 Config for the new toolset (#6259) %!s(int64=4) %!d(string=hai) anos
setup-common.sh 85f5df99a4 update facil.io version (#4366) %!s(int64=6) %!d(string=hai) anos

README.md

facil.io Benchmarking Test

Benchmarks for the facil.io framework.

Test Type Implementation Source Code

Missing tests:

Important Libraries

The tests were run with:

Adding Tests

When adding tests, please remember that:

  • facil.io was designed to be evented.

    For example, instead of waiting for Database results, please use http_pause and http_resume to pause a request from processing until the Database results arrived (at which point, remember to resume the request).

    If using the evented approach is impossible, add threads by updating the command line -t argument to an increased thread count.

  • facil.io assumes memory ownership oriented design.

    This means that functions that place data into another object (i.e., setting header values, hash values etc') take ownership of the data but not it's key.

    For example, when adding an HTTP header, the header name (key) is owned by the calling function (which should free the header name when it's done with it) - but the header value is now owned by the header collection and can no longer be used by the calling function (unless duplicated using fiobj_dup).

    This only applies to functions that place the data into an object (see FIOBJ documentation). This doesn't apply to send/receive functions such as pubsub_publish or pub/sub handlers where the data is "passed through" (or copied) without being placed into an accessible object.

Test URLs

JSON

http://localhost:8080/json

PLAINTEXT

http://localhost:8080/plaintext