{"action":"closed","issue":{"url":"https://api.github.com/repos/FasterXML/jackson-core/issues/293","repository_url":"https://api.github.com/repos/FasterXML/jackson-core","labels_url":"https://api.github.com/repos/FasterXML/jackson-core/issues/293/labels{/name}","comments_url":"https://api.github.com/repos/FasterXML/jackson-core/issues/293/comments","events_url":"https://api.github.com/repos/FasterXML/jackson-core/issues/293/events","html_url":"https://github.com/FasterXML/jackson-core/issues/293","id":160582413,"number":293,"title":"Consider limited recycling of `JsonReadContext` / `JsonWriteContext` instances","user":{"login":"cowtowncoder","id":55065,"avatar_url":"https://avatars.githubusercontent.com/u/55065?v=3","gravatar_id":"","url":"https://api.github.com/users/cowtowncoder","html_url":"https://github.com/cowtowncoder","followers_url":"https://api.github.com/users/cowtowncoder/followers","following_url":"https://api.github.com/users/cowtowncoder/following{/other_user}","gists_url":"https://api.github.com/users/cowtowncoder/gists{/gist_id}","starred_url":"https://api.github.com/users/cowtowncoder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cowtowncoder/subscriptions","organizations_url":"https://api.github.com/users/cowtowncoder/orgs","repos_url":"https://api.github.com/users/cowtowncoder/repos","events_url":"https://api.github.com/users/cowtowncoder/events{/privacy}","received_events_url":"https://api.github.com/users/cowtowncoder/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-06-16T05:47:36Z","updated_at":"2016-07-19T22:56:56Z","closed_at":"2016-07-19T22:56:56Z","body":"Jackson core uses limited amount of buffer recycling for expensive objects like buffers, and this produces significant benefits on platforms with good support for weak/soft refs (j2se, known exception being Android). But one remaining class of things not recycled and that must be reallocated for each and every read/write session (object read/written) are parser and generator context objects. Since these objects can be safely reused (there's limited amount of reuse within \"session\" already), perhaps it'd make sense to see if they could be recycled partially. Trick here is to prune these so that only top N layers are reused; say, top 3 or 4 scopes.\r\n\r\nThis is highly speculative so micro-benchmarking is needed to see if this helps."}}
{"actor":{"display_login":"cowtowncoder"}}