{"action":"created","issue":{"url":"https://api.github.com/repos/marshmallow-code/marshmallow/issues/805","repository_url":"https://api.github.com/repos/marshmallow-code/marshmallow","labels_url":"https://api.github.com/repos/marshmallow-code/marshmallow/issues/805/labels{/name}","comments_url":"https://api.github.com/repos/marshmallow-code/marshmallow/issues/805/comments","events_url":"https://api.github.com/repos/marshmallow-code/marshmallow/issues/805/events","html_url":"https://github.com/marshmallow-code/marshmallow/issues/805","id":322974976,"node_id":"MDU6SXNzdWUzMjI5NzQ5NzY=","number":805,"title":"Investigate Serialization Performance","user":{"login":"deckar01","id":3108007,"node_id":"MDQ6VXNlcjMxMDgwMDc=","avatar_url":"https://avatars1.githubusercontent.com/u/3108007?v=4","gravatar_id":"","url":"https://api.github.com/users/deckar01","html_url":"https://github.com/deckar01","followers_url":"https://api.github.com/users/deckar01/followers","following_url":"https://api.github.com/users/deckar01/following{/other_user}","gists_url":"https://api.github.com/users/deckar01/gists{/gist_id}","starred_url":"https://api.github.com/users/deckar01/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/deckar01/subscriptions","organizations_url":"https://api.github.com/users/deckar01/orgs","repos_url":"https://api.github.com/users/deckar01/repos","events_url":"https://api.github.com/users/deckar01/events{/privacy}","received_events_url":"https://api.github.com/users/deckar01/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"deckar01","id":3108007,"node_id":"MDQ6VXNlcjMxMDgwMDc=","avatar_url":"https://avatars1.githubusercontent.com/u/3108007?v=4","gravatar_id":"","url":"https://api.github.com/users/deckar01","html_url":"https://github.com/deckar01","followers_url":"https://api.github.com/users/deckar01/followers","following_url":"https://api.github.com/users/deckar01/following{/other_user}","gists_url":"https://api.github.com/users/deckar01/gists{/gist_id}","starred_url":"https://api.github.com/users/deckar01/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/deckar01/subscriptions","organizations_url":"https://api.github.com/users/deckar01/orgs","repos_url":"https://api.github.com/users/deckar01/repos","events_url":"https://api.github.com/users/deckar01/events{/privacy}","received_events_url":"https://api.github.com/users/deckar01/received_events","type":"User","site_admin":false},"assignees":[{"login":"deckar01","id":3108007,"node_id":"MDQ6VXNlcjMxMDgwMDc=","avatar_url":"https://avatars1.githubusercontent.com/u/3108007?v=4","gravatar_id":"","url":"https://api.github.com/users/deckar01","html_url":"https://github.com/deckar01","followers_url":"https://api.github.com/users/deckar01/followers","following_url":"https://api.github.com/users/deckar01/following{/other_user}","gists_url":"https://api.github.com/users/deckar01/gists{/gist_id}","starred_url":"https://api.github.com/users/deckar01/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/deckar01/subscriptions","organizations_url":"https://api.github.com/users/deckar01/orgs","repos_url":"https://api.github.com/users/deckar01/repos","events_url":"https://api.github.com/users/deckar01/events{/privacy}","received_events_url":"https://api.github.com/users/deckar01/received_events","type":"User","site_admin":false}],"milestone":null,"comments":2,"created_at":"2018-05-14T20:46:21Z","updated_at":"2018-06-10T18:08:15Z","closed_at":null,"author_association":"COLLABORATOR","body":"Profile schema serialization. Compare the JIT hooks proposed in #629 with other optimization techniques."},"comment":{"url":"https://api.github.com/repos/marshmallow-code/marshmallow/issues/comments/396069246","html_url":"https://github.com/marshmallow-code/marshmallow/issues/805#issuecomment-396069246","issue_url":"https://api.github.com/repos/marshmallow-code/marshmallow/issues/805","id":396069246,"node_id":"MDEyOklzc3VlQ29tbWVudDM5NjA2OTI0Ng==","user":{"login":"taion","id":3112159,"node_id":"MDQ6VXNlcjMxMTIxNTk=","avatar_url":"https://avatars0.githubusercontent.com/u/3112159?v=4","gravatar_id":"","url":"https://api.github.com/users/taion","html_url":"https://github.com/taion","followers_url":"https://api.github.com/users/taion/followers","following_url":"https://api.github.com/users/taion/following{/other_user}","gists_url":"https://api.github.com/users/taion/gists{/gist_id}","starred_url":"https://api.github.com/users/taion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/taion/subscriptions","organizations_url":"https://api.github.com/users/taion/orgs","repos_url":"https://api.github.com/users/taion/repos","events_url":"https://api.github.com/users/taion/events{/privacy}","received_events_url":"https://api.github.com/users/taion/received_events","type":"User","site_admin":false},"created_at":"2018-06-10T18:08:15Z","updated_at":"2018-06-10T18:08:15Z","author_association":"CONTRIBUTOR","body":"I did some casual profiling a while ago... it looks like you need to strip away a ridiculous amount of logic to get to toasted-marshmallow-level performance. Just stuff like inlining the serialization loop and replacing the generic \"get value\" function with just `getattr` only made up a relatively small portion of the gap. Even doing definitely-wrong things like dropping error handling didn't make up much of the gap. I'll see if I still have the code around when I get back to my work computer on Monday.\r\n\r\nI haven't had a chance to read through the toasted-marshmallow code, but I'm even more surprised now over how fast it is.\r\n\r\nThat said, it's pretty complicated, and it's hard to tell if it's in active use in many places, so I'm a bit scared to pull it on as a dependency for my code. But it speeds things up by a shocking amount.\r\n\r\ncc @rowillia "}}
{"actor":{"display_login":"taion"}}