- Apr 08, 2021
-
-
Florian Fischer authored
My first test runs don't show unexpected echos. Therefore I think unexpected echos are rare and their average will always be 0 even if some sparse unexpected echos occur.
-
Florian Fischer authored
* Use emper::lib::math::RunningAverage instead of doing it manually * Count the unexpected Echos, print a error to the log and go continue * Return a duration and error message pair from our clientIteration* functions * Print the current iteration on error * Wait 10 seconds after an error before terminating
-
Florian Fischer authored
Build up output string and don't incrementally output it to stderr to hopefully prevent error messages interleaving. Only output the least significant byte of the unsigned int cast. Always use two digits per byte and remove the whitespace. Should have used printf in the first place.
-
- Apr 06, 2021
-
-
Florian Fischer authored
-
- Apr 02, 2021
-
-
Florian Fischer authored
-
- Mar 23, 2021
-
-
Florian Fischer authored
Rename the macro used to build up the debug message, to better reflect its generality. It can be used anywhere to build a string with C++ stream formatting. std::string s = EMPER_BUILD_STR("foo = " << 1 " , bar = " << bar(42)); Since WDBG was the only log macro without a terminating newline, which was in fact broken according to flow, we can remove it and the new line handling code in the LOG macro.
-
- Mar 17, 2021
-
-
Florian Fischer authored
While we haven't figured out why the version using linked futures breaks we can use a simpler implementation which calls submitAndWait on both futures separately
-
Florian Fischer authored
First of all this replaces the call to sleep(execution_seconds) which calls POSIX sleep(3) which is definitely not what we want here blocking one worker thread. Using a std::thread for termination was chosen because we assume it will be more precise than the emper native emper::sleep.
-
- Mar 11, 2021
-
-
Florian Fischer authored
-
Florian Fischer authored
Specifying execution time and iterations is not allowed.
-
- Mar 08, 2021
-
-
Florian Fischer authored
* Open file only when the benchmark was successful * Append to existing files without writing the header
-
Florian Fischer authored
Nagle's algorithm which tries to prevent small TCP frames is harmful for our throughput if we send small echos. Arithmetic means are inaccurate if the sample has extreme outliers therefore we record and report the total execution times.
-
- Feb 22, 2021
-
-
Florian Fischer authored
-
Florian Fischer authored
-
- Feb 08, 2021
-
-
Florian Fischer authored
-
- Feb 06, 2021
-
-
Florian Fischer authored
This is useful for my evaluation. Because with an output file I just have to check if it exists to see if an echoclient execution was successful.
-
- Feb 05, 2021
-
-
Florian Fischer authored
-
Florian Fischer authored
-
- Feb 03, 2021
-
-
Florian Fischer authored
Use getaddrinfo instead to get the socket information instead of using always ipv4 sockets. Pass host and port as strings for use with getaddrinfo.
-
Florian Fischer authored
Start client Fibers in batches to make sure we don't exceed the server's TCP listen backlog.
-
Florian Fischer authored
-
- Feb 02, 2021
-
-
Modified-by:
Florian Schmaus <flow@cs.fau.de>
-
- Jan 26, 2021
-
-
Florian Fischer authored
The echo client established X connections and start the echo phase after all sockets are connected. Each client Fiber measures the time from sending the message until receiving the echo.
-
Florian Fischer authored
-
- Dec 10, 2020
-
-
Florian Schmaus authored
We are unable to switch to C++20 until https://github.com/mesonbuild/meson/issues/8084 is fixed.
-
- Dec 09, 2020
-
-
Florian Schmaus authored
This also solves a dependency declaration issue in WorkerSleepExample: Prior to this change, a clean build could potentially result in ninja -C build ninja: Entering directory `build' [13/57] Compiling C++ object apps/worker_sleep_example.p/WorkerSleepExample.cpp.o FAILED: apps/worker_sleep_example.p/WorkerSleepExample.cpp.o ccache c++ -Iapps/worker_sleep_example.p -Iapps -I../apps -Iemper -I../emper -Iemper/include -I../emper/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Wpedantic -Werror -std=c++17 -O2 -g -Wno-non-virtual-dtor -MD -MQ apps/worker_sleep_example.p/WorkerSleepExample.cpp.o -MF apps/worker_sleep_example.p/WorkerSleepExample.cpp.o.d -o apps/worker_sleep_example.p/WorkerSleepExample.cpp.o -c ../apps/WorkerSleepExample.cpp ../apps/WorkerSleepExample.cpp:12:10: fatal error: emper-version.h: No such file or directory 12 | #include "emper-version.h" // for EMPER_FULL_VERSION | ^~~~~~~~~~~~~~~~~ compilation terminated. [17/57] Generating emper-version.h with a custom command ninja: build stopped: subcommand failed. make: *** [Makefile:23: build] Error 1 because worker_sleep_example_exec should have also depend on emper_version_h. However this is obviously error prone, as users easily forget to add this dependency. Instead we add emper::getFullVersion() which is part of the EMPER shared object (not just of a single header).
-
Florian Schmaus authored
In debug builds, the schedule() method is now guarded by an assert(), as due to this change, the schedule() method will no longer work from everywhere. This also improves the worker sleep method.
-
- Dec 07, 2020
-
-
Florian Schmaus authored
-
- Nov 10, 2020
-
-
Florian Schmaus authored
-
- Nov 05, 2020
-
-
Florian Schmaus authored
-
Florian Schmaus authored
-
Florian Schmaus authored
-
- Jul 31, 2020
-
-
Florian Schmaus authored
-
- Jun 23, 2017
-
-
Florian Schmaus authored
build your sleezy EMPER version by using for example cmake -DCMAKE_BUILD_TYPE=release -DEMPER_WORKER_SLEEP=ON ..
-
- Sep 08, 2016
-
-
Florian Schmaus authored
-