What are the advantages of bfs over cfs and are there any benchmarks to see if there are any real performance gains?
1 Answer
There is an excellent PDF document here, which explains in detail the differences. It also does several tests that show in graphs how both behave under certain conditions.
Here is a small document from the creator of BFS: http://ck.kolivas.org/patches/bfs/bfs-faq.txt about why he created this scheduler.
But the main differences are:
BFS is better for interactive tasks that block on I/O or user input
BFS is generally a bit faster but a bit more inconsistent
BFS in low latency apps will show a big improvement over CFS (Like video apps)
BFS has much less "spikes" in cpu usage
CFS is generally more consistent for a consistent performance
CFS is better for batch processing that is CPU bound
CFS in multi cpu intensive tasks + multiple tasks will have better performance than BFS
CFS has more spikes than BFS but it works to be more fair between tasks
For the normal user, BFS might give a "better" performance but it will give less performance if you do a lot of batch process.
-
1So in summary... "probably"? The BFS scheduler is probably better for desktop computing?– ScaineJan 9, 2011 at 10:05
-
1Well, as the linked pdf says : "it is dicult to provide a single CPU scheduler that performs well in all platforms and use cases." Jan 9, 2011 at 16:01
-
1Like Maxime said. At least the most common usages must be studied further and tested a lot to determined the best suited scheduler. For the time being the work for this to come is under way. Jan 9, 2011 at 18:33