{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/orleans/issues/2692","repository_url":"https://api.github.com/repos/dotnet/orleans","labels_url":"https://api.github.com/repos/dotnet/orleans/issues/2692/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/orleans/issues/2692/comments","events_url":"https://api.github.com/repos/dotnet/orleans/issues/2692/events","html_url":"https://github.com/dotnet/orleans/pull/2692","id":206037459,"number":2692,"title":"Reduce SchedulingContext allocs for grain activations","user":{"login":"ReubenBond","id":203839,"avatar_url":"https://avatars.githubusercontent.com/u/203839?v=3","gravatar_id":"","url":"https://api.github.com/users/ReubenBond","html_url":"https://github.com/ReubenBond","followers_url":"https://api.github.com/users/ReubenBond/followers","following_url":"https://api.github.com/users/ReubenBond/following{/other_user}","gists_url":"https://api.github.com/users/ReubenBond/gists{/gist_id}","starred_url":"https://api.github.com/users/ReubenBond/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReubenBond/subscriptions","organizations_url":"https://api.github.com/users/ReubenBond/orgs","repos_url":"https://api.github.com/users/ReubenBond/repos","events_url":"https://api.github.com/users/ReubenBond/events{/privacy}","received_events_url":"https://api.github.com/users/ReubenBond/received_events","type":"User","site_admin":false},"labels":[{"id":197713633,"url":"https://api.github.com/repos/dotnet/orleans/labels/cla-already-signed","name":"cla-already-signed","color":"009800","default":false},{"id":314263255,"url":"https://api.github.com/repos/dotnet/orleans/labels/performance","name":"performance","color":"006b75","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/dotnet/orleans/milestones/18","html_url":"https://github.com/dotnet/orleans/milestone/18","labels_url":"https://api.github.com/repos/dotnet/orleans/milestones/18/labels","id":2247963,"number":18,"title":"1.5.0","description":"","creator":{"login":"sergeybykov","id":8248806,"avatar_url":"https://avatars.githubusercontent.com/u/8248806?v=3","gravatar_id":"","url":"https://api.github.com/users/sergeybykov","html_url":"https://github.com/sergeybykov","followers_url":"https://api.github.com/users/sergeybykov/followers","following_url":"https://api.github.com/users/sergeybykov/following{/other_user}","gists_url":"https://api.github.com/users/sergeybykov/gists{/gist_id}","starred_url":"https://api.github.com/users/sergeybykov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sergeybykov/subscriptions","organizations_url":"https://api.github.com/users/sergeybykov/orgs","repos_url":"https://api.github.com/users/sergeybykov/repos","events_url":"https://api.github.com/users/sergeybykov/events{/privacy}","received_events_url":"https://api.github.com/users/sergeybykov/received_events","type":"User","site_admin":false},"open_issues":25,"closed_issues":14,"state":"open","created_at":"2017-01-12T16:44:03Z","updated_at":"2017-02-13T21:24:46Z","due_on":null,"closed_at":null},"comments":8,"created_at":"2017-02-07T22:33:15Z","updated_at":"2017-02-13T22:10:39Z","closed_at":"2017-02-13T21:24:46Z","pull_request":{"url":"https://api.github.com/repos/dotnet/orleans/pulls/2692","html_url":"https://github.com/dotnet/orleans/pull/2692","diff_url":"https://github.com/dotnet/orleans/pull/2692.diff","patch_url":"https://github.com/dotnet/orleans/pull/2692.patch"},"body":"By implementing `ISchedulingContext` in `ActivationData` we can remove at least one allocation per call.\r\n\r\nI did not perform the same optimization for `SystemTarget` at this stage because there are comparatively very few `SystemTarget`s and we already allocate just one `SchedulingContext` per `SystemTarget` (i.e, not per-call).\r\n\r\nI chose to implement this explicitly in `ActivationData` rather than adding a `SchedulingContext` member because it's simple and results in less GC pressure without adding any fields.\r\n\r\nFixes #2677."},"comment":{"url":"https://api.github.com/repos/dotnet/orleans/issues/comments/279539438","html_url":"https://github.com/dotnet/orleans/pull/2692#issuecomment-279539438","issue_url":"https://api.github.com/repos/dotnet/orleans/issues/2692","id":279539438,"user":{"login":"gabikliot","id":10171207,"avatar_url":"https://avatars.githubusercontent.com/u/10171207?v=3","gravatar_id":"","url":"https://api.github.com/users/gabikliot","html_url":"https://github.com/gabikliot","followers_url":"https://api.github.com/users/gabikliot/followers","following_url":"https://api.github.com/users/gabikliot/following{/other_user}","gists_url":"https://api.github.com/users/gabikliot/gists{/gist_id}","starred_url":"https://api.github.com/users/gabikliot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gabikliot/subscriptions","organizations_url":"https://api.github.com/users/gabikliot/orgs","repos_url":"https://api.github.com/users/gabikliot/repos","events_url":"https://api.github.com/users/gabikliot/events{/privacy}","received_events_url":"https://api.github.com/users/gabikliot/received_events","type":"User","site_admin":false},"created_at":"2017-02-13T22:10:39Z","updated_at":"2017-02-13T22:10:39Z","body":"Julian, not a big deal, but next time, if I am consistently reviewing and providing feedback on the cl, please allow me to review the fixes and tge later iterations and decide if it is ready to merge or not. "}}
{"actor":{"display_login":"gabikliot"}}