{"action":"created","comment":{"url":"https://api.github.com/repos/akka/akka/pulls/comments/93447071","pull_request_review_id":13974620,"id":93447071,"diff_hunk":"@@ -174,7 +197,8 @@ object MaxThroughputSpec extends MultiNodeConfig {\n       case EndResult(totalReceived) ⇒\n         val took = NANOSECONDS.toMillis(System.nanoTime - startTime)\n         val throughput = (totalReceived * 1000.0 / took)\n-        println(\n+\n+        reporter.reportResults(\n           s\"=== MaxThroughput ${self.path.name}: \" +\n             f\"throughput ${throughput * testSettings.senderReceiverPairs}%,.0f msg/s, \" +\n             f\"${throughput * payloadSize * testSettings.senderReceiverPairs}%,.0f bytes/s (payload), \" +","path":"akka-remote-tests/src/multi-jvm/scala/akka/remote/artery/MaxThroughputSpec.scala","position":92,"original_position":92,"commit_id":"1d33cafb306aa49e1a8bb6a792ae81b48f75dd26","original_commit_id":"1d33cafb306aa49e1a8bb6a792ae81b48f75dd26","user":{"login":"jrudolph","id":9868,"avatar_url":"https://avatars.githubusercontent.com/u/9868?v=3","gravatar_id":"","url":"https://api.github.com/users/jrudolph","html_url":"https://github.com/jrudolph","followers_url":"https://api.github.com/users/jrudolph/followers","following_url":"https://api.github.com/users/jrudolph/following{/other_user}","gists_url":"https://api.github.com/users/jrudolph/gists{/gist_id}","starred_url":"https://api.github.com/users/jrudolph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jrudolph/subscriptions","organizations_url":"https://api.github.com/users/jrudolph/orgs","repos_url":"https://api.github.com/users/jrudolph/repos","events_url":"https://api.github.com/users/jrudolph/events{/privacy}","received_events_url":"https://api.github.com/users/jrudolph/received_events","type":"User","site_admin":false},"body":"This turns out quite hard to fix. The problem is that now that I changed to n-to-n communication, all the phases of the test, warmup, running and test reporting need to be synchronized over all the actors which is tricky to get right...","created_at":"2016-12-21T14:30:16Z","updated_at":"2016-12-21T14:30:16Z","html_url":"https://github.com/akka/akka/pull/22048#discussion_r93447071","pull_request_url":"https://api.github.com/repos/akka/akka/pulls/22048","_links":{"self":{"href":"https://api.github.com/repos/akka/akka/pulls/comments/93447071"},"html":{"href":"https://github.com/akka/akka/pull/22048#discussion_r93447071"},"pull_request":{"href":"https://api.github.com/repos/akka/akka/pulls/22048"}}},"pull_request":{"url":"https://api.github.com/repos/akka/akka/pulls/22048","id":98786432,"html_url":"https://github.com/akka/akka/pull/22048","diff_url":"https://github.com/akka/akka/pull/22048.diff","patch_url":"https://github.com/akka/akka/pull/22048.patch","issue_url":"https://api.github.com/repos/akka/akka/issues/22048","number":22048,"state":"open","locked":false,"title":"[PREVIEW] Improve performance of inbound lanes by making spinning loops in AeronSource configurable","user":{"login":"jrudolph","id":9868,"avatar_url":"https://avatars.githubusercontent.com/u/9868?v=3","gravatar_id":"","url":"https://api.github.com/users/jrudolph","html_url":"https://github.com/jrudolph","followers_url":"https://api.github.com/users/jrudolph/followers","following_url":"https://api.github.com/users/jrudolph/following{/other_user}","gists_url":"https://api.github.com/users/jrudolph/gists{/gist_id}","starred_url":"https://api.github.com/users/jrudolph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jrudolph/subscriptions","organizations_url":"https://api.github.com/users/jrudolph/orgs","repos_url":"https://api.github.com/users/jrudolph/repos","events_url":"https://api.github.com/users/jrudolph/events{/privacy}","received_events_url":"https://api.github.com/users/jrudolph/received_events","type":"User","site_admin":false},"body":"This adds a new setting `advanced.inbound-source-spinning` which can be used to configure the number of spin loops in AeronSource. Using that setting (and slightly improved benchmarking infrastructure), I ran a set of benchmarks with the results attached.\r\n\r\nThe gist of it is that removing the spinning completely has mostly positive results with only a few small disadvantages. \r\n\r\nThe biggest benefit of disabling spinning is that with `inbound-lanes > 1` latency is now only slightly worse than with 1 lane (66µs with 1 lane vs 76µs with 2 lanes in the 20000k case) and throughput improves by 25% (236k msgs/s with 1 lane vs. 300k msgs/s with 2 lanes) in the 5-to-5 case.\r\n\r\nThe biggest adverse effect I found was that when `inbound-lanes = 1` (no async boundary), latency in the 20000k/s case (which is the one with the overall best latency) takes a 25% hit from 55µs to 65µs when spinning is disabled (at the same time throughput is better). This might seem much relatively but in absolute numbers it is negligible imo because latency usually is more in the ranges of 100-200µs. \r\n\r\n[benchmark-results.zip](https://github.com/akka/akka/files/664265/benchmark-results.zip)\r\n\r\nI added the extra setting mostly for allowing the benchmarks. I'd prefer to remove it in the end. We could also keep it for a while if third-parties would be interested in running their own tests.","created_at":"2016-12-20T16:57:57Z","updated_at":"2016-12-21T14:30:16Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1d7725e2f50fdc606dfe6db517a17de72f46c6aa","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/akka/akka/pulls/22048/commits","review_comments_url":"https://api.github.com/repos/akka/akka/pulls/22048/comments","review_comment_url":"https://api.github.com/repos/akka/akka/pulls/comments{/number}","comments_url":"https://api.github.com/repos/akka/akka/issues/22048/comments","statuses_url":"https://api.github.com/repos/akka/akka/statuses/1d33cafb306aa49e1a8bb6a792ae81b48f75dd26","head":{"label":"jrudolph:jr/w/21365-improve-inbound-lanes-performance","ref":"jr/w/21365-improve-inbound-lanes-performance","sha":"1d33cafb306aa49e1a8bb6a792ae81b48f75dd26","user":{"login":"jrudolph","id":9868,"avatar_url":"https://avatars.githubusercontent.com/u/9868?v=3","gravatar_id":"","url":"https://api.github.com/users/jrudolph","html_url":"https://github.com/jrudolph","followers_url":"https://api.github.com/users/jrudolph/followers","following_url":"https://api.github.com/users/jrudolph/following{/other_user}","gists_url":"https://api.github.com/users/jrudolph/gists{/gist_id}","starred_url":"https://api.github.com/users/jrudolph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jrudolph/subscriptions","organizations_url":"https://api.github.com/users/jrudolph/orgs","repos_url":"https://api.github.com/users/jrudolph/repos","events_url":"https://api.github.com/users/jrudolph/events{/privacy}","received_events_url":"https://api.github.com/users/jrudolph/received_events","type":"User","site_admin":false},"repo":{"id":2111729,"name":"akka","full_name":"jrudolph/akka","owner":{"login":"jrudolph","id":9868,"avatar_url":"https://avatars.githubusercontent.com/u/9868?v=3","gravatar_id":"","url":"https://api.github.com/users/jrudolph","html_url":"https://github.com/jrudolph","followers_url":"https://api.github.com/users/jrudolph/followers","following_url":"https://api.github.com/users/jrudolph/following{/other_user}","gists_url":"https://api.github.com/users/jrudolph/gists{/gist_id}","starred_url":"https://api.github.com/users/jrudolph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jrudolph/subscriptions","organizations_url":"https://api.github.com/users/jrudolph/orgs","repos_url":"https://api.github.com/users/jrudolph/repos","events_url":"https://api.github.com/users/jrudolph/events{/privacy}","received_events_url":"https://api.github.com/users/jrudolph/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jrudolph/akka","description":"Akka Project","fork":true,"url":"https://api.github.com/repos/jrudolph/akka","forks_url":"https://api.github.com/repos/jrudolph/akka/forks","keys_url":"https://api.github.com/repos/jrudolph/akka/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jrudolph/akka/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jrudolph/akka/teams","hooks_url":"https://api.github.com/repos/jrudolph/akka/hooks","issue_events_url":"https://api.github.com/repos/jrudolph/akka/issues/events{/number}","events_url":"https://api.github.com/repos/jrudolph/akka/events","assignees_url":"https://api.github.com/repos/jrudolph/akka/assignees{/user}","branches_url":"https://api.github.com/repos/jrudolph/akka/branches{/branch}","tags_url":"https://api.github.com/repos/jrudolph/akka/tags","blobs_url":"https://api.github.com/repos/jrudolph/akka/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jrudolph/akka/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jrudolph/akka/git/refs{/sha}","trees_url":"https://api.github.com/repos/jrudolph/akka/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jrudolph/akka/statuses/{sha}","languages_url":"https://api.github.com/repos/jrudolph/akka/languages","stargazers_url":"https://api.github.com/repos/jrudolph/akka/stargazers","contributors_url":"https://api.github.com/repos/jrudolph/akka/contributors","subscribers_url":"https://api.github.com/repos/jrudolph/akka/subscribers","subscription_url":"https://api.github.com/repos/jrudolph/akka/subscription","commits_url":"https://api.github.com/repos/jrudolph/akka/commits{/sha}","git_commits_url":"https://api.github.com/repos/jrudolph/akka/git/commits{/sha}","comments_url":"https://api.github.com/repos/jrudolph/akka/comments{/number}","issue_comment_url":"https://api.github.com/repos/jrudolph/akka/issues/comments{/number}","contents_url":"https://api.github.com/repos/jrudolph/akka/contents/{+path}","compare_url":"https://api.github.com/repos/jrudolph/akka/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jrudolph/akka/merges","archive_url":"https://api.github.com/repos/jrudolph/akka/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jrudolph/akka/downloads","issues_url":"https://api.github.com/repos/jrudolph/akka/issues{/number}","pulls_url":"https://api.github.com/repos/jrudolph/akka/pulls{/number}","milestones_url":"https://api.github.com/repos/jrudolph/akka/milestones{/number}","notifications_url":"https://api.github.com/repos/jrudolph/akka/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jrudolph/akka/labels{/name}","releases_url":"https://api.github.com/repos/jrudolph/akka/releases{/id}","deployments_url":"https://api.github.com/repos/jrudolph/akka/deployments","created_at":"2011-07-27T08:18:22Z","updated_at":"2016-01-12T15:05:24Z","pushed_at":"2016-12-20T16:43:27Z","git_url":"git://github.com/jrudolph/akka.git","ssh_url":"git@github.com:jrudolph/akka.git","clone_url":"https://github.com/jrudolph/akka.git","svn_url":"https://github.com/jrudolph/akka","homepage":"http://akka.io","size":188677,"stargazers_count":1,"watchers_count":1,"language":"Scala","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":1,"default_branch":"master-with-original-stream-history"}},"base":{"label":"akka:master","ref":"master","sha":"108517958e4e44c2ec954b3790f5fdda3897a185","user":{"login":"akka","id":1496237,"avatar_url":"https://avatars.githubusercontent.com/u/1496237?v=3","gravatar_id":"","url":"https://api.github.com/users/akka","html_url":"https://github.com/akka","followers_url":"https://api.github.com/users/akka/followers","following_url":"https://api.github.com/users/akka/following{/other_user}","gists_url":"https://api.github.com/users/akka/gists{/gist_id}","starred_url":"https://api.github.com/users/akka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akka/subscriptions","organizations_url":"https://api.github.com/users/akka/orgs","repos_url":"https://api.github.com/users/akka/repos","events_url":"https://api.github.com/users/akka/events{/privacy}","received_events_url":"https://api.github.com/users/akka/received_events","type":"Organization","site_admin":false},"repo":{"id":130013,"name":"akka","full_name":"akka/akka","owner":{"login":"akka","id":1496237,"avatar_url":"https://avatars.githubusercontent.com/u/1496237?v=3","gravatar_id":"","url":"https://api.github.com/users/akka","html_url":"https://github.com/akka","followers_url":"https://api.github.com/users/akka/followers","following_url":"https://api.github.com/users/akka/following{/other_user}","gists_url":"https://api.github.com/users/akka/gists{/gist_id}","starred_url":"https://api.github.com/users/akka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akka/subscriptions","organizations_url":"https://api.github.com/users/akka/orgs","repos_url":"https://api.github.com/users/akka/repos","events_url":"https://api.github.com/users/akka/events{/privacy}","received_events_url":"https://api.github.com/users/akka/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/akka/akka","description":"Akka Project","fork":false,"url":"https://api.github.com/repos/akka/akka","forks_url":"https://api.github.com/repos/akka/akka/forks","keys_url":"https://api.github.com/repos/akka/akka/keys{/key_id}","collaborators_url":"https://api.github.com/repos/akka/akka/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/akka/akka/teams","hooks_url":"https://api.github.com/repos/akka/akka/hooks","issue_events_url":"https://api.github.com/repos/akka/akka/issues/events{/number}","events_url":"https://api.github.com/repos/akka/akka/events","assignees_url":"https://api.github.com/repos/akka/akka/assignees{/user}","branches_url":"https://api.github.com/repos/akka/akka/branches{/branch}","tags_url":"https://api.github.com/repos/akka/akka/tags","blobs_url":"https://api.github.com/repos/akka/akka/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/akka/akka/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/akka/akka/git/refs{/sha}","trees_url":"https://api.github.com/repos/akka/akka/git/trees{/sha}","statuses_url":"https://api.github.com/repos/akka/akka/statuses/{sha}","languages_url":"https://api.github.com/repos/akka/akka/languages","stargazers_url":"https://api.github.com/repos/akka/akka/stargazers","contributors_url":"https://api.github.com/repos/akka/akka/contributors","subscribers_url":"https://api.github.com/repos/akka/akka/subscribers","subscription_url":"https://api.github.com/repos/akka/akka/subscription","commits_url":"https://api.github.com/repos/akka/akka/commits{/sha}","git_commits_url":"https://api.github.com/repos/akka/akka/git/commits{/sha}","comments_url":"https://api.github.com/repos/akka/akka/comments{/number}","issue_comment_url":"https://api.github.com/repos/akka/akka/issues/comments{/number}","contents_url":"https://api.github.com/repos/akka/akka/contents/{+path}","compare_url":"https://api.github.com/repos/akka/akka/compare/{base}...{head}","merges_url":"https://api.github.com/repos/akka/akka/merges","archive_url":"https://api.github.com/repos/akka/akka/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/akka/akka/downloads","issues_url":"https://api.github.com/repos/akka/akka/issues{/number}","pulls_url":"https://api.github.com/repos/akka/akka/pulls{/number}","milestones_url":"https://api.github.com/repos/akka/akka/milestones{/number}","notifications_url":"https://api.github.com/repos/akka/akka/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/akka/akka/labels{/name}","releases_url":"https://api.github.com/repos/akka/akka/releases{/id}","deployments_url":"https://api.github.com/repos/akka/akka/deployments","created_at":"2009-02-16T12:51:54Z","updated_at":"2016-12-21T13:02:11Z","pushed_at":"2016-12-21T13:24:19Z","git_url":"git://github.com/akka/akka.git","ssh_url":"git@github.com:akka/akka.git","clone_url":"https://github.com/akka/akka.git","svn_url":"https://github.com/akka/akka","homepage":"http://akka.io","size":194046,"stargazers_count":6453,"watchers_count":6453,"language":"Scala","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":2064,"mirror_url":null,"open_issues_count":521,"forks":2064,"open_issues":521,"watchers":6453,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/akka/akka/pulls/22048"},"html":{"href":"https://github.com/akka/akka/pull/22048"},"issue":{"href":"https://api.github.com/repos/akka/akka/issues/22048"},"comments":{"href":"https://api.github.com/repos/akka/akka/issues/22048/comments"},"review_comments":{"href":"https://api.github.com/repos/akka/akka/pulls/22048/comments"},"review_comment":{"href":"https://api.github.com/repos/akka/akka/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/akka/akka/pulls/22048/commits"},"statuses":{"href":"https://api.github.com/repos/akka/akka/statuses/1d33cafb306aa49e1a8bb6a792ae81b48f75dd26"}}}}
{"actor":{"display_login":"jrudolph"}}