{"action":"created","issue":{"url":"https://api.github.com/repos/JamesNK/Newtonsoft.Json/issues/1081","repository_url":"https://api.github.com/repos/JamesNK/Newtonsoft.Json","labels_url":"https://api.github.com/repos/JamesNK/Newtonsoft.Json/issues/1081/labels{/name}","comments_url":"https://api.github.com/repos/JamesNK/Newtonsoft.Json/issues/1081/comments","events_url":"https://api.github.com/repos/JamesNK/Newtonsoft.Json/issues/1081/events","html_url":"https://github.com/JamesNK/Newtonsoft.Json/pull/1081","id":190489972,"number":1081,"title":"Cache results when splitting fully qualified type names","user":{"login":"i3arnon","id":6595156,"avatar_url":"https://avatars.githubusercontent.com/u/6595156?v=3","gravatar_id":"","url":"https://api.github.com/users/i3arnon","html_url":"https://github.com/i3arnon","followers_url":"https://api.github.com/users/i3arnon/followers","following_url":"https://api.github.com/users/i3arnon/following{/other_user}","gists_url":"https://api.github.com/users/i3arnon/gists{/gist_id}","starred_url":"https://api.github.com/users/i3arnon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/i3arnon/subscriptions","organizations_url":"https://api.github.com/users/i3arnon/orgs","repos_url":"https://api.github.com/users/i3arnon/repos","events_url":"https://api.github.com/users/i3arnon/events{/privacy}","received_events_url":"https://api.github.com/users/i3arnon/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-11-19T10:47:38Z","updated_at":"2016-11-19T20:31:38Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/JamesNK/Newtonsoft.Json/pulls/1081","html_url":"https://github.com/JamesNK/Newtonsoft.Json/pull/1081","diff_url":"https://github.com/JamesNK/Newtonsoft.Json/pull/1081.diff","patch_url":"https://github.com/JamesNK/Newtonsoft.Json/pull/1081.patch"},"body":"Solves #1079.\r\n\r\nIn high performance scenarios when deserializing json objects that use $type the `SplitFullyQualifiedTypeName` method allocates a huge amount of strings to be GCed, although the types themselves are almost always the same.\r\n\r\nThis change caches the results instead of generating them again and again for each deserialization. "},"comment":{"url":"https://api.github.com/repos/JamesNK/Newtonsoft.Json/issues/comments/261737779","html_url":"https://github.com/JamesNK/Newtonsoft.Json/pull/1081#issuecomment-261737779","issue_url":"https://api.github.com/repos/JamesNK/Newtonsoft.Json/issues/1081","id":261737779,"user":{"login":"i3arnon","id":6595156,"avatar_url":"https://avatars.githubusercontent.com/u/6595156?v=3","gravatar_id":"","url":"https://api.github.com/users/i3arnon","html_url":"https://github.com/i3arnon","followers_url":"https://api.github.com/users/i3arnon/followers","following_url":"https://api.github.com/users/i3arnon/following{/other_user}","gists_url":"https://api.github.com/users/i3arnon/gists{/gist_id}","starred_url":"https://api.github.com/users/i3arnon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/i3arnon/subscriptions","organizations_url":"https://api.github.com/users/i3arnon/orgs","repos_url":"https://api.github.com/users/i3arnon/repos","events_url":"https://api.github.com/users/i3arnon/events{/privacy}","received_events_url":"https://api.github.com/users/i3arnon/received_events","type":"User","site_admin":false},"created_at":"2016-11-19T20:31:38Z","updated_at":"2016-11-19T20:31:38Z","body":"@JamesNK that's very reasonable. In our product we have a construct that ages over time (and is capped by size) to solve that.\r\n\r\nI haven't found something similar in the existing code, but I could easily set a timer to replace the dictionary every interval (10 minutes?). Is that behavior acceptable?"}}
{"actor":{"display_login":"i3arnon"}}