{"action":"created","issue":{"url":"https://api.github.com/repos/netty/netty/issues/5214","repository_url":"https://api.github.com/repos/netty/netty","labels_url":"https://api.github.com/repos/netty/netty/issues/5214/labels{/name}","comments_url":"https://api.github.com/repos/netty/netty/issues/5214/comments","events_url":"https://api.github.com/repos/netty/netty/issues/5214/events","html_url":"https://github.com/netty/netty/pull/5214","id":153124913,"number":5214,"title":"RedisEncoderBenchmark","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/feature","name":"feature","color":"009800"}],"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/84","html_url":"https://github.com/netty/netty/milestones/4.1.0.Final","labels_url":"https://api.github.com/repos/netty/netty/milestones/84/labels","id":561880,"number":84,"title":"4.1.0.Final","description":null,"creator":{"login":"trustin","id":173918,"avatar_url":"https://avatars.githubusercontent.com/u/173918?v=3","gravatar_id":"","url":"https://api.github.com/users/trustin","html_url":"https://github.com/trustin","followers_url":"https://api.github.com/users/trustin/followers","following_url":"https://api.github.com/users/trustin/following{/other_user}","gists_url":"https://api.github.com/users/trustin/gists{/gist_id}","starred_url":"https://api.github.com/users/trustin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/trustin/subscriptions","organizations_url":"https://api.github.com/users/trustin/orgs","repos_url":"https://api.github.com/users/trustin/repos","events_url":"https://api.github.com/users/trustin/events{/privacy}","received_events_url":"https://api.github.com/users/trustin/received_events","type":"User","site_admin":false},"open_issues":51,"closed_issues":23,"state":"open","created_at":"2014-02-07T08:42:42Z","updated_at":"2016-05-04T22:00:17Z","due_on":null,"closed_at":null},"comments":2,"created_at":"2016-05-04T22:00:17Z","updated_at":"2016-05-04T23:12:43Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/netty/netty/pulls/5214","html_url":"https://github.com/netty/netty/pull/5214","diff_url":"https://github.com/netty/netty/pull/5214.diff","patch_url":"https://github.com/netty/netty/pull/5214.patch"},"body":"Motivation:\r\nAdd a benchmark to measure RedisEncoder's performance\r\n\r\nModifications:\r\n- Add RedisEncoderBenchmark\r\n\r\nResult:\r\nJMH benchmark exists to measure RedisEncoder's performance."},"comment":{"url":"https://api.github.com/repos/netty/netty/issues/comments/217034020","html_url":"https://github.com/netty/netty/pull/5214#issuecomment-217034020","issue_url":"https://api.github.com/repos/netty/netty/issues/5214","id":217034020,"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":"2016-05-04T23:12:43Z","updated_at":"2016-05-04T23:12:43Z","body":"current 4.1 branch\r\n```\r\nBenchmark                         (arraySize)  (pooledAllocator)  (voidPromise)   Mode  Cnt      Score       Error  Units\r\nRedisEncoderBenchmark.writeArray           50               true           true  thrpt    5  63969.220 ±  6382.102  ops/s\r\nRedisEncoderBenchmark.writeArray           50               true          false  thrpt    5  49814.431 ± 12195.522  ops/s\r\nRedisEncoderBenchmark.writeArray           50              false           true  thrpt    5  33211.060 ±  3504.983  ops/s\r\nRedisEncoderBenchmark.writeArray           50              false          false  thrpt    5  30743.100 ±   499.501  ops/s\r\nRedisEncoderBenchmark.writeArray          200               true           true  thrpt    5  15591.464 ±  3394.825  ops/s\r\nRedisEncoderBenchmark.writeArray          200               true          false  thrpt    5  13390.514 ±   379.690  ops/s\r\nRedisEncoderBenchmark.writeArray          200              false           true  thrpt    5   8147.296 ±   952.575  ops/s\r\nRedisEncoderBenchmark.writeArray          200              false          false  thrpt    5   7865.048 ±  1073.804  ops/s\r\nRedisEncoderBenchmark.writeArray         1000               true           true  thrpt    5   2544.127 ±    51.005  ops/s\r\nRedisEncoderBenchmark.writeArray         1000               true          false  thrpt    5   2198.244 ±   265.702  ops/s\r\nRedisEncoderBenchmark.writeArray         1000              false           true  thrpt    5   1469.964 ±   258.873  ops/s\r\nRedisEncoderBenchmark.writeArray         1000              false          false  thrpt    5   1712.845 ±    62.373  ops/s\r\n```\r\n\r\npr #5187 \r\n```\r\nBenchmark                         (arraySize)  (pooledAllocator)  (voidPromise)   Mode  Cnt      Score       Error  Units\r\nRedisEncoderBenchmark.writeArray           50               true           true  thrpt    5  68281.282 ± 11148.027  ops/s\r\nRedisEncoderBenchmark.writeArray           50               true          false  thrpt    5  62231.308 ± 10257.768  ops/s\r\nRedisEncoderBenchmark.writeArray           50              false           true  thrpt    5  32490.653 ±  3856.137  ops/s\r\nRedisEncoderBenchmark.writeArray           50              false          false  thrpt    5  31663.050 ±   561.172  ops/s\r\nRedisEncoderBenchmark.writeArray          200               true           true  thrpt    5  16371.227 ±  1670.922  ops/s\r\nRedisEncoderBenchmark.writeArray          200               true          false  thrpt    5  14778.851 ±  1449.987  ops/s\r\nRedisEncoderBenchmark.writeArray          200              false           true  thrpt    5   8524.627 ±  1167.727  ops/s\r\nRedisEncoderBenchmark.writeArray          200              false          false  thrpt    5   8533.671 ±   523.321  ops/s\r\nRedisEncoderBenchmark.writeArray         1000               true           true  thrpt    5   3096.848 ±   586.170  ops/s\r\nRedisEncoderBenchmark.writeArray         1000               true          false  thrpt    5   3189.777 ±   303.031  ops/s\r\nRedisEncoderBenchmark.writeArray         1000              false           true  thrpt    5   1720.446 ±    30.271  ops/s\r\nRedisEncoderBenchmark.writeArray         1000              false          false  thrpt    5   1732.278 ±   115.518  ops/s\r\n```\r\n\r\nImprovement in this benchmark is as much as ~45%. These results likely also don't demonstrate the savings in GC due to allocating less promise objects."}}