{"action":"created","issue":{"url":"https://api.github.com/repos/threadly/threadly/issues/121","labels_url":"https://api.github.com/repos/threadly/threadly/issues/121/labels{/name}","comments_url":"https://api.github.com/repos/threadly/threadly/issues/121/comments","events_url":"https://api.github.com/repos/threadly/threadly/issues/121/events","html_url":"https://github.com/threadly/threadly/pull/121","id":53159683,"number":121,"title":"Performance improvement in PriorityScheduler from seperate execute and schedule queues","user":{"login":"jentfoo","id":2165757,"avatar_url":"https://avatars.githubusercontent.com/u/2165757?v=3","gravatar_id":"","url":"https://api.github.com/users/jentfoo","html_url":"https://github.com/jentfoo","followers_url":"https://api.github.com/users/jentfoo/followers","following_url":"https://api.github.com/users/jentfoo/following{/other_user}","gists_url":"https://api.github.com/users/jentfoo/gists{/gist_id}","starred_url":"https://api.github.com/users/jentfoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jentfoo/subscriptions","organizations_url":"https://api.github.com/users/jentfoo/orgs","repos_url":"https://api.github.com/users/jentfoo/repos","events_url":"https://api.github.com/users/jentfoo/events{/privacy}","received_events_url":"https://api.github.com/users/jentfoo/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/threadly/threadly/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"lwahlmeier","id":4663016,"avatar_url":"https://avatars.githubusercontent.com/u/4663016?v=3","gravatar_id":"","url":"https://api.github.com/users/lwahlmeier","html_url":"https://github.com/lwahlmeier","followers_url":"https://api.github.com/users/lwahlmeier/followers","following_url":"https://api.github.com/users/lwahlmeier/following{/other_user}","gists_url":"https://api.github.com/users/lwahlmeier/gists{/gist_id}","starred_url":"https://api.github.com/users/lwahlmeier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lwahlmeier/subscriptions","organizations_url":"https://api.github.com/users/lwahlmeier/orgs","repos_url":"https://api.github.com/users/lwahlmeier/repos","events_url":"https://api.github.com/users/lwahlmeier/events{/privacy}","received_events_url":"https://api.github.com/users/lwahlmeier/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/threadly/threadly/milestones/28","labels_url":"https://api.github.com/repos/threadly/threadly/milestones/28/labels","id":875784,"number":28,"title":"3.4.0 Release","description":"Changes/Improvements included in 3.4.0:\r\n* Performance improvements to Profiler when there is a large count of threads to profile.  This can provide a more accurate sample rate when there is a lot of threads.","creator":{"login":"jentfoo","id":2165757,"avatar_url":"https://avatars.githubusercontent.com/u/2165757?v=3","gravatar_id":"","url":"https://api.github.com/users/jentfoo","html_url":"https://github.com/jentfoo","followers_url":"https://api.github.com/users/jentfoo/followers","following_url":"https://api.github.com/users/jentfoo/following{/other_user}","gists_url":"https://api.github.com/users/jentfoo/gists{/gist_id}","starred_url":"https://api.github.com/users/jentfoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jentfoo/subscriptions","organizations_url":"https://api.github.com/users/jentfoo/orgs","repos_url":"https://api.github.com/users/jentfoo/repos","events_url":"https://api.github.com/users/jentfoo/events{/privacy}","received_events_url":"https://api.github.com/users/jentfoo/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":0,"state":"open","created_at":"2014-11-21T15:12:41Z","updated_at":"2014-12-31T00:44:46Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2014-12-31T00:44:39Z","updated_at":"2015-01-02T22:08:05Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/threadly/threadly/pulls/121","html_url":"https://github.com/threadly/threadly/pull/121","diff_url":"https://github.com/threadly/threadly/pull/121.diff","patch_url":"https://github.com/threadly/threadly/pull/121.patch"},"body":"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.\r\n\r\nThe fun stuff....Here is the improvement in the benchmarks (each one for the full cycle of add, run, finish):\r\n  Execute Task   - 14.6% improvement\r\n  Recurring task -  4.1% improvement\r\n  Scheduled task -  3.6% improvement\r\n\r\n...at least some improvement in every benchmark we currently have"},"comment":{"url":"https://api.github.com/repos/threadly/threadly/issues/comments/68567171","html_url":"https://github.com/threadly/threadly/pull/121#issuecomment-68567171","issue_url":"https://api.github.com/repos/threadly/threadly/issues/121","id":68567171,"user":{"login":"jentfoo","id":2165757,"avatar_url":"https://avatars.githubusercontent.com/u/2165757?v=3","gravatar_id":"","url":"https://api.github.com/users/jentfoo","html_url":"https://github.com/jentfoo","followers_url":"https://api.github.com/users/jentfoo/followers","following_url":"https://api.github.com/users/jentfoo/following{/other_user}","gists_url":"https://api.github.com/users/jentfoo/gists{/gist_id}","starred_url":"https://api.github.com/users/jentfoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jentfoo/subscriptions","organizations_url":"https://api.github.com/users/jentfoo/orgs","repos_url":"https://api.github.com/users/jentfoo/repos","events_url":"https://api.github.com/users/jentfoo/events{/privacy}","received_events_url":"https://api.github.com/users/jentfoo/received_events","type":"User","site_admin":false},"created_at":"2015-01-02T22:08:05Z","updated_at":"2015-01-02T22:08:05Z","body":"Latest build on cloudbees PASSED: https://threadly.ci.cloudbees.com/view/Threadly/job/threadly-master/487/\r\n\r\n(I have not figured out why it is not automatically posting any more)"}}