{"action":"created","issue":{"url":"https://api.github.com/repos/pyca/pyopenssl/issues/578","repository_url":"https://api.github.com/repos/pyca/pyopenssl","labels_url":"https://api.github.com/repos/pyca/pyopenssl/issues/578/labels{/name}","comments_url":"https://api.github.com/repos/pyca/pyopenssl/issues/578/comments","events_url":"https://api.github.com/repos/pyca/pyopenssl/issues/578/events","html_url":"https://github.com/pyca/pyopenssl/pull/578","id":191886951,"number":578,"title":"Don't zero memory when we don't have to.","user":{"login":"Lukasa","id":1382556,"avatar_url":"https://avatars.githubusercontent.com/u/1382556?v=3","gravatar_id":"","url":"https://api.github.com/users/Lukasa","html_url":"https://github.com/Lukasa","followers_url":"https://api.github.com/users/Lukasa/followers","following_url":"https://api.github.com/users/Lukasa/following{/other_user}","gists_url":"https://api.github.com/users/Lukasa/gists{/gist_id}","starred_url":"https://api.github.com/users/Lukasa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Lukasa/subscriptions","organizations_url":"https://api.github.com/users/Lukasa/orgs","repos_url":"https://api.github.com/users/Lukasa/repos","events_url":"https://api.github.com/users/Lukasa/events{/privacy}","received_events_url":"https://api.github.com/users/Lukasa/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":29,"created_at":"2016-11-27T21:31:17Z","updated_at":"2016-12-05T09:10:34Z","closed_at":"2016-11-28T12:17:08Z","pull_request":{"url":"https://api.github.com/repos/pyca/pyopenssl/pulls/578","html_url":"https://github.com/pyca/pyopenssl/pull/578","diff_url":"https://github.com/pyca/pyopenssl/pull/578.diff","patch_url":"https://github.com/pyca/pyopenssl/pull/578.patch"},"body":"Resolves #577.\r\n\r\nThis provides and stores an allocator that is exactly the same as the standard CFFI allocator except for the fact that it skips zeroing the memory before use.\r\n\r\nThis PR goes through the `SSL.py` module and changes all allocations of buffers that OpenSSL writes data into to use the new allocator. Given that OpenSSL always tells us how many bytes it has written, this change saves us substantial overhead zeroing memory we don't need to. This change can often save hundreds of milliseconds per call, which is quite an improvement!\r\n\r\nThere are probably some other places we could use the new allocator. Should I go through all of PyOpenSSL to check every single allocation to see if we can use the new allocator? Do we need some kind of testing? If so...uh...what kind?"},"comment":{"url":"https://api.github.com/repos/pyca/pyopenssl/issues/comments/264801582","html_url":"https://github.com/pyca/pyopenssl/pull/578#issuecomment-264801582","issue_url":"https://api.github.com/repos/pyca/pyopenssl/issues/578","id":264801582,"user":{"login":"njsmith","id":609896,"avatar_url":"https://avatars.githubusercontent.com/u/609896?v=3","gravatar_id":"","url":"https://api.github.com/users/njsmith","html_url":"https://github.com/njsmith","followers_url":"https://api.github.com/users/njsmith/followers","following_url":"https://api.github.com/users/njsmith/following{/other_user}","gists_url":"https://api.github.com/users/njsmith/gists{/gist_id}","starred_url":"https://api.github.com/users/njsmith/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/njsmith/subscriptions","organizations_url":"https://api.github.com/users/njsmith/orgs","repos_url":"https://api.github.com/users/njsmith/repos","events_url":"https://api.github.com/users/njsmith/events{/privacy}","received_events_url":"https://api.github.com/users/njsmith/received_events","type":"User","site_admin":false},"created_at":"2016-12-05T09:10:34Z","updated_at":"2016-12-05T09:10:34Z","body":"Ah, I see, yeah, I was using a 2 GiB test array.\r\n\r\nI can reproduce your example timings on my 10.11.5 test box. Wow, that's pretty terrible."}}
{"actor":{"display_login":"njsmith"}}