{"action":"created","issue":{"url":"https://api.github.com/repos/netty/netty/issues/5532","repository_url":"https://api.github.com/repos/netty/netty","labels_url":"https://api.github.com/repos/netty/netty/issues/5532/labels{/name}","comments_url":"https://api.github.com/repos/netty/netty/issues/5532/comments","events_url":"https://api.github.com/repos/netty/netty/issues/5532/events","html_url":"https://github.com/netty/netty/pull/5532","id":165396098,"number":5532,"title":"Optimize UTF8 decoding","user":{"login":"Techcable","id":4615889,"avatar_url":"https://avatars.githubusercontent.com/u/4615889?v=3","gravatar_id":"","url":"https://api.github.com/users/Techcable","html_url":"https://github.com/Techcable","followers_url":"https://api.github.com/users/Techcable/followers","following_url":"https://api.github.com/users/Techcable/following{/other_user}","gists_url":"https://api.github.com/users/Techcable/gists{/gist_id}","starred_url":"https://api.github.com/users/Techcable/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Techcable/subscriptions","organizations_url":"https://api.github.com/users/Techcable/orgs","repos_url":"https://api.github.com/users/Techcable/repos","events_url":"https://api.github.com/users/Techcable/events{/privacy}","received_events_url":"https://api.github.com/users/Techcable/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2016-07-13T18:59:26Z","updated_at":"2016-07-20T18:28:22Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/netty/netty/pulls/5532","html_url":"https://github.com/netty/netty/pull/5532","diff_url":"https://github.com/netty/netty/pull/5532.diff","patch_url":"https://github.com/netty/netty/pull/5532.patch"},"body":"Based off the algorithim presented at http://bjoern.hoehrmann.de/utf-8/decoder/dfa/\r\nIts a simple state machine, with two lookup tables to access character data and transition to the next state.\r\nIt also contains a fast path for ASCII characters as they are extremely common.\r\n\r\nOn my very simple tests, its about a 75% performance increase over Charsets.UTF_8.newDecoder() for ASCII data, and about 4x for unicode data.\r\n\r\nHowever, my tests didn't use a benchmark harness and I've optimized decoding more since then.\r\n\r\nYou should also consider migrating `ByteBufInputStream.readUTF()` to use this instead of `DataInputStream.readUTF()` since this is 0-copy and likely faster too."},"comment":{"url":"https://api.github.com/repos/netty/netty/issues/comments/234038321","html_url":"https://github.com/netty/netty/pull/5532#issuecomment-234038321","issue_url":"https://api.github.com/repos/netty/netty/issues/5532","id":234038321,"user":{"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},"created_at":"2016-07-20T18:28:22Z","updated_at":"2016-07-20T18:28:22Z","body":"@Techcable let us know once you have benchmark numbers and want us to look again"}}
{"actor":{"display_login":"normanmaurer"}}