FAQ
How to speed up the test process
Beware!!!!
When talking about speed, a lot of things have to be taken into consideration. Here is a non-exhaustive list of things that can fluctuate the testing speed.
- Bandwidth
- DNS Server response time
- CPU
- ISP filter (cf: blocking connection to huge amount of IPs)
- Our very own databases management (cf: this does not apply to PostgreSQL, MySQL or MariaDB)
- Size of the dataset to test
- Disk I/O in particular as PyFunceble is heavy on the I/O (cf: RAM Drives and NVMe disks are very suitable for PyFunceble's CSV storage)
- ...
If you have a dedicated server, VM or machine for PyFunceble, you can simply increase
the number of maximal workers PyFunceble is allowed to use through the --max-workers
argument or its cli_testing.max_workers
setting.
By default, the number of worker is equal to the number of CPU Cores minus 2 (CPU Cores - 2
),
but with a minimum of 1.
Meaning that if you have 8
CPU threads, the value will be automatically set to 6
.
If you have 2
CPU threads, the value will be automatically set to 1
.
If that is still not sufficient for you, and you feel chancy, you my try to use the
dangerous --chancy
argument.
Info
Keep in mind that the max workers setting mostly - if not only - affects the tester
subprocesses and not the one in charge of generating outputs. Therefore, you may
have the feeling that it takes time because you feel that the output
is slow but that's actually not the case. (cf: this doesn't apply if you
choose to use the --chancy
argument - or its setting switch).
Indeed, because we want to safely write the files (Disk I/O), we still need a single process that reads the submitted results and generates the outputs.
This has been a design decision because having safely formatted files is more important that having the feeling that the output is pretty quick.
Beware!!!!
No contributor or maintainer of PyFunceble shall be responsible for your
decisions. If you felt chancy enough to use the --chancy
argument, you
shouldn't not yield when something inexpected happens.
You are still welcome to propose some changes though .