{"action":"created","issue":{"url":"https://api.github.com/repos/h2o/picohttpparser/issues/10","labels_url":"https://api.github.com/repos/h2o/picohttpparser/issues/10/labels{/name}","comments_url":"https://api.github.com/repos/h2o/picohttpparser/issues/10/comments","events_url":"https://api.github.com/repos/h2o/picohttpparser/issues/10/events","html_url":"https://github.com/h2o/picohttpparser/pull/10","id":52380279,"number":10,"title":"Adds an AVX2 option for the parser.","user":{"login":"vkrasnov","id":7411662,"avatar_url":"https://avatars.githubusercontent.com/u/7411662?v=3","gravatar_id":"","url":"https://api.github.com/users/vkrasnov","html_url":"https://github.com/vkrasnov","followers_url":"https://api.github.com/users/vkrasnov/followers","following_url":"https://api.github.com/users/vkrasnov/following{/other_user}","gists_url":"https://api.github.com/users/vkrasnov/gists{/gist_id}","starred_url":"https://api.github.com/users/vkrasnov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vkrasnov/subscriptions","organizations_url":"https://api.github.com/users/vkrasnov/orgs","repos_url":"https://api.github.com/users/vkrasnov/repos","events_url":"https://api.github.com/users/vkrasnov/events{/privacy}","received_events_url":"https://api.github.com/users/vkrasnov/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2014-12-18T15:57:52Z","updated_at":"2015-08-18T14:44:51Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/h2o/picohttpparser/pulls/10","html_url":"https://github.com/h2o/picohttpparser/pull/10","diff_url":"https://github.com/h2o/picohttpparser/pull/10.diff","patch_url":"https://github.com/h2o/picohttpparser/pull/10.patch"},"body":"This gives significant performance boost on Haswell CPUs (compared to PCMPESTRI)\r\n1.78X for bench.c up to 2X for some other on i5-4278U, with gcc 4.9.2 -O3 -mavx2 -mbmi2.\r\nThe change requires the entire parse_headers function to change -\r\ninstead looking for the next token, it now creates a bitmap of all tokens.\r\nWhen compiled without -mavx2 it uses the old parse_headers.\r\nThe code was not tested much, so it might contain some bugs, I mostly\r\nwrote it to check the performance potential of AVX2 for parsing."},"comment":{"url":"https://api.github.com/repos/h2o/picohttpparser/issues/comments/132236489","html_url":"https://github.com/h2o/picohttpparser/pull/10#issuecomment-132236489","issue_url":"https://api.github.com/repos/h2o/picohttpparser/issues/10","id":132236489,"user":{"login":"kazuho","id":41567,"avatar_url":"https://avatars.githubusercontent.com/u/41567?v=3","gravatar_id":"","url":"https://api.github.com/users/kazuho","html_url":"https://github.com/kazuho","followers_url":"https://api.github.com/users/kazuho/followers","following_url":"https://api.github.com/users/kazuho/following{/other_user}","gists_url":"https://api.github.com/users/kazuho/gists{/gist_id}","starred_url":"https://api.github.com/users/kazuho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kazuho/subscriptions","organizations_url":"https://api.github.com/users/kazuho/orgs","repos_url":"https://api.github.com/users/kazuho/repos","events_url":"https://api.github.com/users/kazuho/events{/privacy}","received_events_url":"https://api.github.com/users/kazuho/received_events","type":"User","site_admin":false},"created_at":"2015-08-18T14:44:51Z","updated_at":"2015-08-18T14:44:51Z","body":"Sorry, I had thought that I had left my comment on this issue.\r\n\r\nThe code in PR looks great.  It shows the true potential of what could be done by using SIMD instructions, and my kudos go to @vkrasnov for the work.\r\n\r\nOTOH I am afraid I would not be capable of maintaining the code.  The approach used in the PR is a big leap from string operations that the non-SIMD version of picohttpparser and the SIMD-optimized version based on PCMPxSTRx instruction use.  And personally I dot have any practical issue in the level of performance achieved by the current implementation of picohttpparser.\r\n\r\nConsidering all the facts, I am inclined to not merging this PR, but keep it open so that others interested could notice the work."}}