Add throttling to file system polling and reduce CPU usage on default setting, remove watchman references #83
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Jurigged does not use watchman, it uses watchdog. Watchdog does not use watchman.
I investigated using watchfiles and it didn't provide enough benefits to merit switching. It added a bit of code complexity to conform to the interface that jurigged was expecting and even then it created bug hazards.
The watchfiles branch is here, for reference: https://github.com/JamesHutchison/pytest-hot-reloading/tree/watchfiles
This fixes the references to watchman to now say "OS events", it also adds the capability to throttle the file system polling done by jurigged to reduce idle cpu usage. Lower numbers are faster. The default values now increase the polling interval to 2 seconds instead of 1, and adds a small 2 ms delay before each
listdir
. Both of these are affected by the throttle, so for example, a value of 0.5 brings the delay back to 1 second and reduces thelistdir
delay to 1ms.The default changes reduce the idle CPU usage by approx half. In Heavy Resume this reduced the idle from 10 - 12% to 4 - 6% with the debugger on.
Addresses #80