{"action":"created","issue":{"url":"https://api.github.com/repos/datalust/seq-releases/issues/423","repository_url":"https://api.github.com/repos/datalust/seq-releases","labels_url":"https://api.github.com/repos/datalust/seq-releases/issues/423/labels{/name}","comments_url":"https://api.github.com/repos/datalust/seq-releases/issues/423/comments","events_url":"https://api.github.com/repos/datalust/seq-releases/issues/423/events","html_url":"https://github.com/datalust/seq-releases/issues/423","id":154660696,"number":423,"title":"Optimized storage reader","user":{"login":"nblumhardt","id":342712,"avatar_url":"https://avatars.githubusercontent.com/u/342712?v=3","gravatar_id":"","url":"https://api.github.com/users/nblumhardt","html_url":"https://github.com/nblumhardt","followers_url":"https://api.github.com/users/nblumhardt/followers","following_url":"https://api.github.com/users/nblumhardt/following{/other_user}","gists_url":"https://api.github.com/users/nblumhardt/gists{/gist_id}","starred_url":"https://api.github.com/users/nblumhardt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nblumhardt/subscriptions","organizations_url":"https://api.github.com/users/nblumhardt/orgs","repos_url":"https://api.github.com/users/nblumhardt/repos","events_url":"https://api.github.com/users/nblumhardt/events{/privacy}","received_events_url":"https://api.github.com/users/nblumhardt/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/datalust/seq-releases/labels/enhancement","name":"enhancement","color":"0087cc"}],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/datalust/seq-releases/milestones/64","html_url":"https://github.com/datalust/seq-releases/milestones/3.2-pre","labels_url":"https://api.github.com/repos/datalust/seq-releases/milestones/64/labels","id":1715341,"number":64,"title":"3.2-pre","description":"","creator":{"login":"nblumhardt","id":342712,"avatar_url":"https://avatars.githubusercontent.com/u/342712?v=3","gravatar_id":"","url":"https://api.github.com/users/nblumhardt","html_url":"https://github.com/nblumhardt","followers_url":"https://api.github.com/users/nblumhardt/followers","following_url":"https://api.github.com/users/nblumhardt/following{/other_user}","gists_url":"https://api.github.com/users/nblumhardt/gists{/gist_id}","starred_url":"https://api.github.com/users/nblumhardt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nblumhardt/subscriptions","organizations_url":"https://api.github.com/users/nblumhardt/orgs","repos_url":"https://api.github.com/users/nblumhardt/repos","events_url":"https://api.github.com/users/nblumhardt/events{/privacy}","received_events_url":"https://api.github.com/users/nblumhardt/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":11,"state":"open","created_at":"2016-04-18T21:05:37Z","updated_at":"2016-05-16T01:59:08Z","due_on":"2016-05-30T14:00:00Z","closed_at":null},"comments":1,"created_at":"2016-05-13T08:37:41Z","updated_at":"2016-05-16T01:59:08Z","closed_at":"2016-05-16T01:59:08Z","body":"The current deserializer used when reading stored events is a general-purpose one, with results post-processed to reduce RAM footprint (string interning and schema caching) and match Seq's data model. This adds some cost at load time, and later during query processing in some cases.\r\n\r\nI'm not keen to maintain a completely custom serializer, but building one on top of JSON.NET's `JsonReader` could be a happy medium.\r\n\r\nInitial testing suggests the reduction in allocations has a substantial impact on startup memory footprint, perhaps due to a reduction in fragmentation.\r\n\r\nAiming to land this in 3.2 also."},"comment":{"url":"https://api.github.com/repos/datalust/seq-releases/issues/comments/219333641","html_url":"https://github.com/datalust/seq-releases/issues/423#issuecomment-219333641","issue_url":"https://api.github.com/repos/datalust/seq-releases/issues/423","id":219333641,"user":{"login":"nblumhardt","id":342712,"avatar_url":"https://avatars.githubusercontent.com/u/342712?v=3","gravatar_id":"","url":"https://api.github.com/users/nblumhardt","html_url":"https://github.com/nblumhardt","followers_url":"https://api.github.com/users/nblumhardt/followers","following_url":"https://api.github.com/users/nblumhardt/following{/other_user}","gists_url":"https://api.github.com/users/nblumhardt/gists{/gist_id}","starred_url":"https://api.github.com/users/nblumhardt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nblumhardt/subscriptions","organizations_url":"https://api.github.com/users/nblumhardt/orgs","repos_url":"https://api.github.com/users/nblumhardt/repos","events_url":"https://api.github.com/users/nblumhardt/events{/privacy}","received_events_url":"https://api.github.com/users/nblumhardt/received_events","type":"User","site_admin":false},"created_at":"2016-05-16T01:59:08Z","updated_at":"2016-05-16T01:59:08Z","body":"Done, testing in 3.2.4. Initial results are promising . The improved memory locality seems to grant about a 10% performance boost across the board, and a few queries that benefit from the simplified in-memory event format get a little more."}}