{"action":"created","issue":{"url":"https://api.github.com/repos/netty/netty/issues/4038","labels_url":"https://api.github.com/repos/netty/netty/issues/4038/labels{/name}","comments_url":"https://api.github.com/repos/netty/netty/issues/4038/comments","events_url":"https://api.github.com/repos/netty/netty/issues/4038/events","html_url":"https://github.com/netty/netty/pull/4038","id":97835147,"number":4038,"title":"Headers Performance Boost and Interface Simplification","user":{"login":"Scottmitch","id":7562868,"avatar_url":"https://avatars.githubusercontent.com/u/7562868?v=3","gravatar_id":"","url":"https://api.github.com/users/Scottmitch","html_url":"https://github.com/Scottmitch","followers_url":"https://api.github.com/users/Scottmitch/followers","following_url":"https://api.github.com/users/Scottmitch/following{/other_user}","gists_url":"https://api.github.com/users/Scottmitch/gists{/gist_id}","starred_url":"https://api.github.com/users/Scottmitch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Scottmitch/subscriptions","organizations_url":"https://api.github.com/users/Scottmitch/orgs","repos_url":"https://api.github.com/users/Scottmitch/repos","events_url":"https://api.github.com/users/Scottmitch/events{/privacy}","received_events_url":"https://api.github.com/users/Scottmitch/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/netty/netty/labels/improvement","name":"improvement","color":"0052cc"}],"state":"open","locked":false,"assignee":{"login":"Scottmitch","id":7562868,"avatar_url":"https://avatars.githubusercontent.com/u/7562868?v=3","gravatar_id":"","url":"https://api.github.com/users/Scottmitch","html_url":"https://github.com/Scottmitch","followers_url":"https://api.github.com/users/Scottmitch/followers","following_url":"https://api.github.com/users/Scottmitch/following{/other_user}","gists_url":"https://api.github.com/users/Scottmitch/gists{/gist_id}","starred_url":"https://api.github.com/users/Scottmitch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Scottmitch/subscriptions","organizations_url":"https://api.github.com/users/Scottmitch/orgs","repos_url":"https://api.github.com/users/Scottmitch/repos","events_url":"https://api.github.com/users/Scottmitch/events{/privacy}","received_events_url":"https://api.github.com/users/Scottmitch/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/netty/netty/milestones/117","html_url":"https://github.com/netty/netty/milestones/4.1.0.Beta6","labels_url":"https://api.github.com/repos/netty/netty/milestones/117/labels","id":1100817,"number":117,"title":"4.1.0.Beta6","description":"","creator":{"login":"normanmaurer","id":439362,"avatar_url":"https://avatars.githubusercontent.com/u/439362?v=3","gravatar_id":"","url":"https://api.github.com/users/normanmaurer","html_url":"https://github.com/normanmaurer","followers_url":"https://api.github.com/users/normanmaurer/followers","following_url":"https://api.github.com/users/normanmaurer/following{/other_user}","gists_url":"https://api.github.com/users/normanmaurer/gists{/gist_id}","starred_url":"https://api.github.com/users/normanmaurer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/normanmaurer/subscriptions","organizations_url":"https://api.github.com/users/normanmaurer/orgs","repos_url":"https://api.github.com/users/normanmaurer/repos","events_url":"https://api.github.com/users/normanmaurer/events{/privacy}","received_events_url":"https://api.github.com/users/normanmaurer/received_events","type":"User","site_admin":false},"open_issues":77,"closed_issues":52,"state":"open","created_at":"2015-05-07T19:29:09Z","updated_at":"2015-07-29T16:45:27Z","due_on":null,"closed_at":null},"comments":6,"created_at":"2015-07-29T01:27:30Z","updated_at":"2015-07-29T23:11:59Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/netty/netty/pulls/4038","html_url":"https://github.com/netty/netty/pull/4038","diff_url":"https://github.com/netty/netty/pull/4038.diff","patch_url":"https://github.com/netty/netty/pull/4038.patch"},"body":"Motivation:\r\nA degradation in performance has been observed from the 4.0 branch as documented in #3962.\r\n\r\nModifications:\r\n- Simplify Headers class hierarchy.\r\n- Restore the DefaultHeaders to be based upon DefaultHttpHeaders from 4.0.\r\n- Make various other modifications that are causing hot spots.\r\n\r\nResult:\r\nPerformance is now on par with 4.0."},"comment":{"url":"https://api.github.com/repos/netty/netty/issues/comments/126123681","html_url":"https://github.com/netty/netty/pull/4038#issuecomment-126123681","issue_url":"https://api.github.com/repos/netty/netty/issues/4038","id":126123681,"user":{"login":"Scottmitch","id":7562868,"avatar_url":"https://avatars.githubusercontent.com/u/7562868?v=3","gravatar_id":"","url":"https://api.github.com/users/Scottmitch","html_url":"https://github.com/Scottmitch","followers_url":"https://api.github.com/users/Scottmitch/followers","following_url":"https://api.github.com/users/Scottmitch/following{/other_user}","gists_url":"https://api.github.com/users/Scottmitch/gists{/gist_id}","starred_url":"https://api.github.com/users/Scottmitch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Scottmitch/subscriptions","organizations_url":"https://api.github.com/users/Scottmitch/orgs","repos_url":"https://api.github.com/users/Scottmitch/repos","events_url":"https://api.github.com/users/Scottmitch/events{/privacy}","received_events_url":"https://api.github.com/users/Scottmitch/received_events","type":"User","site_admin":false},"created_at":"2015-07-29T23:11:59Z","updated_at":"2015-07-29T23:11:59Z","body":"@buchgr - I ran benchmarks comparing different sizes and masking vs modulo. I ran 4 benchmarks\r\n\r\n1. Mask with array size of 16\r\n2. Mask with array size of 32\r\n3. Modulo with array size of 17\r\n4. Modulo with array size of 31\r\n\r\nThe results can be found here https://docs.google.com/spreadsheets/d/1GeClmWqz6XaPRB_yqFeyAj-IdvIXBkd6CUSKt1qZ5lo/edit?usp=sharing.\r\n\r\nIt looks like masking is generally better than modulo and for this particular test there was no benefit by increasing the array size to 32."}}