apetrone / simplefilewatcher

unofficial mirror
http://code.google.com/p/simplefilewatcher/
Other
143 stars 33 forks source link

Demo application eats 13% CPU without doing anything... #4

Open tapika opened 5 years ago

tapika commented 5 years ago

Current API uses polling mechanism to poll updates, which eats CPU quite heavily.

Of course if you have 1 second polling mechanism like https://github.com/RuntimeCompiledCPlusPlus/RuntimeCompiledCPlusPlus/wiki does, then CPU usage cannot be seen, as it does not consume so much CPU as in SimpleDemo, but it consumes CPU still.

Would it be difficult to recode API to use threads instead ?

Also in newest c++ standards I've noticed that new class std::filesystem appeared, which deals with file system path/folders creation / directory / files enumeration - I think it's perfect from standardization perspective. Would like to see file watcher also standardized. Does makes any sense to switch api to lower case and move into std namespace, so it would be easier to integrate later on under the same umbrella ? :-)

morgoth990 commented 5 years ago

The SimpleDemo usa a lot of cpu because of the while loop, profiling the performance the cpu time is irrelevant: image

tapika commented 5 years ago

yes, but cpu usage can be minimized by adding additional sleep(50 ms) in that for loop, then it won't eat CPU so much.

lucdewit2001 commented 3 years ago

yea i agree, you dont need to watch the file as fast as possible, you can limit it to cpu usage. This is what should be done