{"action":"closed","number":1,"pull_request":{"url":"https://api.github.com/repos/ebfe/cmac/pulls/1","id":30625011,"html_url":"https://github.com/ebfe/cmac/pull/1","diff_url":"https://github.com/ebfe/cmac/pull/1.diff","patch_url":"https://github.com/ebfe/cmac/pull/1.patch","issue_url":"https://api.github.com/repos/ebfe/cmac/issues/1","number":1,"state":"closed","locked":false,"title":"Performance improvements","user":{"login":"zenazn","id":12960,"avatar_url":"https://avatars.githubusercontent.com/u/12960?v=3","gravatar_id":"","url":"https://api.github.com/users/zenazn","html_url":"https://github.com/zenazn","followers_url":"https://api.github.com/users/zenazn/followers","following_url":"https://api.github.com/users/zenazn/following{/other_user}","gists_url":"https://api.github.com/users/zenazn/gists{/gist_id}","starred_url":"https://api.github.com/users/zenazn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zenazn/subscriptions","organizations_url":"https://api.github.com/users/zenazn/orgs","repos_url":"https://api.github.com/users/zenazn/repos","events_url":"https://api.github.com/users/zenazn/events{/privacy}","received_events_url":"https://api.github.com/users/zenazn/received_events","type":"User","site_admin":false},"body":"I took a profiler to this package and got a bunch of fun performance wins!\r\n\r\nThe net improvement from commits in this PR (as recorded on my early 2013 2.7 GHz Core i7 MacBook Pro) is as follows:\r\n```\r\nbenchmark             old ns/op     new ns/op     delta\r\nBenchmarkHash1024     11766         4608          -60.84%\r\n\r\nbenchmark             old MB/s     new MB/s     speedup\r\nBenchmarkHash1024     87.03        222.21       2.55x\r\n\r\nbenchmark             old allocs     new allocs     delta\r\nBenchmarkHash1024     66             0              -100.00%\r\n\r\nbenchmark             old bytes     new bytes     delta\r\nBenchmarkHash1024     2064          0             -100.00%\r\n```\r\n\r\nThe bulk of my effort was put into reducing allocations, so I'm sure I left some cycles on the table if you (or anyone else) is curious to hunt for them.","created_at":"2015-03-06T07:05:46Z","updated_at":"2015-03-08T19:37:28Z","closed_at":"2015-03-08T19:37:28Z","merged_at":null,"merge_commit_sha":"008bc2170465f6c3663f99fe8a5b9d6e047d44ef","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ebfe/cmac/pulls/1/commits","review_comments_url":"https://api.github.com/repos/ebfe/cmac/pulls/1/comments","review_comment_url":"https://api.github.com/repos/ebfe/cmac/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ebfe/cmac/issues/1/comments","statuses_url":"https://api.github.com/repos/ebfe/cmac/statuses/595639f3783fd57bdd45c4ecebce2e3dd42e71c4","head":{"label":"zenazn:benchmark","ref":"benchmark","sha":"595639f3783fd57bdd45c4ecebce2e3dd42e71c4","user":{"login":"zenazn","id":12960,"avatar_url":"https://avatars.githubusercontent.com/u/12960?v=3","gravatar_id":"","url":"https://api.github.com/users/zenazn","html_url":"https://github.com/zenazn","followers_url":"https://api.github.com/users/zenazn/followers","following_url":"https://api.github.com/users/zenazn/following{/other_user}","gists_url":"https://api.github.com/users/zenazn/gists{/gist_id}","starred_url":"https://api.github.com/users/zenazn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zenazn/subscriptions","organizations_url":"https://api.github.com/users/zenazn/orgs","repos_url":"https://api.github.com/users/zenazn/repos","events_url":"https://api.github.com/users/zenazn/events{/privacy}","received_events_url":"https://api.github.com/users/zenazn/received_events","type":"User","site_admin":false},"repo":{"id":31756693,"name":"cmac","full_name":"zenazn/cmac","owner":{"login":"zenazn","id":12960,"avatar_url":"https://avatars.githubusercontent.com/u/12960?v=3","gravatar_id":"","url":"https://api.github.com/users/zenazn","html_url":"https://github.com/zenazn","followers_url":"https://api.github.com/users/zenazn/followers","following_url":"https://api.github.com/users/zenazn/following{/other_user}","gists_url":"https://api.github.com/users/zenazn/gists{/gist_id}","starred_url":"https://api.github.com/users/zenazn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zenazn/subscriptions","organizations_url":"https://api.github.com/users/zenazn/orgs","repos_url":"https://api.github.com/users/zenazn/repos","events_url":"https://api.github.com/users/zenazn/events{/privacy}","received_events_url":"https://api.github.com/users/zenazn/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/zenazn/cmac","description":"cmac (rfc4493 / nist sp800-38b)","fork":true,"url":"https://api.github.com/repos/zenazn/cmac","forks_url":"https://api.github.com/repos/zenazn/cmac/forks","keys_url":"https://api.github.com/repos/zenazn/cmac/keys{/key_id}","collaborators_url":"https://api.github.com/repos/zenazn/cmac/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/zenazn/cmac/teams","hooks_url":"https://api.github.com/repos/zenazn/cmac/hooks","issue_events_url":"https://api.github.com/repos/zenazn/cmac/issues/events{/number}","events_url":"https://api.github.com/repos/zenazn/cmac/events","assignees_url":"https://api.github.com/repos/zenazn/cmac/assignees{/user}","branches_url":"https://api.github.com/repos/zenazn/cmac/branches{/branch}","tags_url":"https://api.github.com/repos/zenazn/cmac/tags","blobs_url":"https://api.github.com/repos/zenazn/cmac/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/zenazn/cmac/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/zenazn/cmac/git/refs{/sha}","trees_url":"https://api.github.com/repos/zenazn/cmac/git/trees{/sha}","statuses_url":"https://api.github.com/repos/zenazn/cmac/statuses/{sha}","languages_url":"https://api.github.com/repos/zenazn/cmac/languages","stargazers_url":"https://api.github.com/repos/zenazn/cmac/stargazers","contributors_url":"https://api.github.com/repos/zenazn/cmac/contributors","subscribers_url":"https://api.github.com/repos/zenazn/cmac/subscribers","subscription_url":"https://api.github.com/repos/zenazn/cmac/subscription","commits_url":"https://api.github.com/repos/zenazn/cmac/commits{/sha}","git_commits_url":"https://api.github.com/repos/zenazn/cmac/git/commits{/sha}","comments_url":"https://api.github.com/repos/zenazn/cmac/comments{/number}","issue_comment_url":"https://api.github.com/repos/zenazn/cmac/issues/comments{/number}","contents_url":"https://api.github.com/repos/zenazn/cmac/contents/{+path}","compare_url":"https://api.github.com/repos/zenazn/cmac/compare/{base}...{head}","merges_url":"https://api.github.com/repos/zenazn/cmac/merges","archive_url":"https://api.github.com/repos/zenazn/cmac/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/zenazn/cmac/downloads","issues_url":"https://api.github.com/repos/zenazn/cmac/issues{/number}","pulls_url":"https://api.github.com/repos/zenazn/cmac/pulls{/number}","milestones_url":"https://api.github.com/repos/zenazn/cmac/milestones{/number}","notifications_url":"https://api.github.com/repos/zenazn/cmac/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/zenazn/cmac/labels{/name}","releases_url":"https://api.github.com/repos/zenazn/cmac/releases{/id}","created_at":"2015-03-06T06:56:46Z","updated_at":"2015-03-06T06:56:47Z","pushed_at":"2015-03-06T06:57:14Z","git_url":"git://github.com/zenazn/cmac.git","ssh_url":"git@github.com:zenazn/cmac.git","clone_url":"https://github.com/zenazn/cmac.git","svn_url":"https://github.com/zenazn/cmac","homepage":"","size":89,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ebfe:master","ref":"master","sha":"549c867416d07ad1f638c98e56896772006ee9b5","user":{"login":"ebfe","id":685065,"avatar_url":"https://avatars.githubusercontent.com/u/685065?v=3","gravatar_id":"","url":"https://api.github.com/users/ebfe","html_url":"https://github.com/ebfe","followers_url":"https://api.github.com/users/ebfe/followers","following_url":"https://api.github.com/users/ebfe/following{/other_user}","gists_url":"https://api.github.com/users/ebfe/gists{/gist_id}","starred_url":"https://api.github.com/users/ebfe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ebfe/subscriptions","organizations_url":"https://api.github.com/users/ebfe/orgs","repos_url":"https://api.github.com/users/ebfe/repos","events_url":"https://api.github.com/users/ebfe/events{/privacy}","received_events_url":"https://api.github.com/users/ebfe/received_events","type":"User","site_admin":false},"repo":{"id":13538109,"name":"cmac","full_name":"ebfe/cmac","owner":{"login":"ebfe","id":685065,"avatar_url":"https://avatars.githubusercontent.com/u/685065?v=3","gravatar_id":"","url":"https://api.github.com/users/ebfe","html_url":"https://github.com/ebfe","followers_url":"https://api.github.com/users/ebfe/followers","following_url":"https://api.github.com/users/ebfe/following{/other_user}","gists_url":"https://api.github.com/users/ebfe/gists{/gist_id}","starred_url":"https://api.github.com/users/ebfe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ebfe/subscriptions","organizations_url":"https://api.github.com/users/ebfe/orgs","repos_url":"https://api.github.com/users/ebfe/repos","events_url":"https://api.github.com/users/ebfe/events{/privacy}","received_events_url":"https://api.github.com/users/ebfe/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ebfe/cmac","description":"cmac (rfc4493 / nist sp800-38b)","fork":false,"url":"https://api.github.com/repos/ebfe/cmac","forks_url":"https://api.github.com/repos/ebfe/cmac/forks","keys_url":"https://api.github.com/repos/ebfe/cmac/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ebfe/cmac/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ebfe/cmac/teams","hooks_url":"https://api.github.com/repos/ebfe/cmac/hooks","issue_events_url":"https://api.github.com/repos/ebfe/cmac/issues/events{/number}","events_url":"https://api.github.com/repos/ebfe/cmac/events","assignees_url":"https://api.github.com/repos/ebfe/cmac/assignees{/user}","branches_url":"https://api.github.com/repos/ebfe/cmac/branches{/branch}","tags_url":"https://api.github.com/repos/ebfe/cmac/tags","blobs_url":"https://api.github.com/repos/ebfe/cmac/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ebfe/cmac/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ebfe/cmac/git/refs{/sha}","trees_url":"https://api.github.com/repos/ebfe/cmac/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ebfe/cmac/statuses/{sha}","languages_url":"https://api.github.com/repos/ebfe/cmac/languages","stargazers_url":"https://api.github.com/repos/ebfe/cmac/stargazers","contributors_url":"https://api.github.com/repos/ebfe/cmac/contributors","subscribers_url":"https://api.github.com/repos/ebfe/cmac/subscribers","subscription_url":"https://api.github.com/repos/ebfe/cmac/subscription","commits_url":"https://api.github.com/repos/ebfe/cmac/commits{/sha}","git_commits_url":"https://api.github.com/repos/ebfe/cmac/git/commits{/sha}","comments_url":"https://api.github.com/repos/ebfe/cmac/comments{/number}","issue_comment_url":"https://api.github.com/repos/ebfe/cmac/issues/comments{/number}","contents_url":"https://api.github.com/repos/ebfe/cmac/contents/{+path}","compare_url":"https://api.github.com/repos/ebfe/cmac/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ebfe/cmac/merges","archive_url":"https://api.github.com/repos/ebfe/cmac/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ebfe/cmac/downloads","issues_url":"https://api.github.com/repos/ebfe/cmac/issues{/number}","pulls_url":"https://api.github.com/repos/ebfe/cmac/pulls{/number}","milestones_url":"https://api.github.com/repos/ebfe/cmac/milestones{/number}","notifications_url":"https://api.github.com/repos/ebfe/cmac/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ebfe/cmac/labels{/name}","releases_url":"https://api.github.com/repos/ebfe/cmac/releases{/id}","created_at":"2013-10-13T11:29:31Z","updated_at":"2015-03-08T19:37:28Z","pushed_at":"2015-03-08T19:37:28Z","git_url":"git://github.com/ebfe/cmac.git","ssh_url":"git@github.com:ebfe/cmac.git","clone_url":"https://github.com/ebfe/cmac.git","svn_url":"https://github.com/ebfe/cmac","homepage":"","size":184,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ebfe/cmac/pulls/1"},"html":{"href":"https://github.com/ebfe/cmac/pull/1"},"issue":{"href":"https://api.github.com/repos/ebfe/cmac/issues/1"},"comments":{"href":"https://api.github.com/repos/ebfe/cmac/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/ebfe/cmac/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/ebfe/cmac/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ebfe/cmac/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/ebfe/cmac/statuses/595639f3783fd57bdd45c4ecebce2e3dd42e71c4"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":5,"additions":70,"deletions":37,"changed_files":2}}