threadly/threadly — pull request #121 by jentfoo (2014-12-31 00:44:39+00:00)
Title: Performance improvement in PriorityScheduler from seperate execute and schedule queues

This uses some lessons learned from NoThreadScheduler about a possible performance improvement from having a seperate execute queue, and a schedule queue. This reduces the lock contention, but greatly increases the code complexity. Because of that, this change is pretty high risk. It completely changes queue management in the PriorityScheduler. I have tried to deal with some of that risk by trying to ensure high unit testing. Needless to say we may want this as only a SNAPSHOT for some time.

The fun stuff....Here is the improvement in the benchmarks (each one for the full cycle of add, run, finish):
Execute Task - 14.6% improvement
Recurring task - 4.1% improvement
Scheduled task - 3.6% improvement

...at least some improvement in every benchmark we currently have