{"action":"opened","issue":{"url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/issues/759","repository_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream","labels_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/issues/759/labels{/name}","comments_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/issues/759/comments","events_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/issues/759/events","html_url":"https://github.com/spring-cloud/spring-cloud-stream/issues/759","id":200120778,"number":759,"title":"Performance issue with aggregated app","user":{"login":"jvalkeal","id":50398,"avatar_url":"https://avatars.githubusercontent.com/u/50398?v=3","gravatar_id":"","url":"https://api.github.com/users/jvalkeal","html_url":"https://github.com/jvalkeal","followers_url":"https://api.github.com/users/jvalkeal/followers","following_url":"https://api.github.com/users/jvalkeal/following{/other_user}","gists_url":"https://api.github.com/users/jvalkeal/gists{/gist_id}","starred_url":"https://api.github.com/users/jvalkeal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jvalkeal/subscriptions","organizations_url":"https://api.github.com/users/jvalkeal/orgs","repos_url":"https://api.github.com/users/jvalkeal/repos","events_url":"https://api.github.com/users/jvalkeal/events{/privacy}","received_events_url":"https://api.github.com/users/jvalkeal/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"mbogoevici","id":159684,"avatar_url":"https://avatars.githubusercontent.com/u/159684?v=3","gravatar_id":"","url":"https://api.github.com/users/mbogoevici","html_url":"https://github.com/mbogoevici","followers_url":"https://api.github.com/users/mbogoevici/followers","following_url":"https://api.github.com/users/mbogoevici/following{/other_user}","gists_url":"https://api.github.com/users/mbogoevici/gists{/gist_id}","starred_url":"https://api.github.com/users/mbogoevici/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbogoevici/subscriptions","organizations_url":"https://api.github.com/users/mbogoevici/orgs","repos_url":"https://api.github.com/users/mbogoevici/repos","events_url":"https://api.github.com/users/mbogoevici/events{/privacy}","received_events_url":"https://api.github.com/users/mbogoevici/received_events","type":"User","site_admin":false},"assignees":[{"login":"mbogoevici","id":159684,"avatar_url":"https://avatars.githubusercontent.com/u/159684?v=3","gravatar_id":"","url":"https://api.github.com/users/mbogoevici","html_url":"https://github.com/mbogoevici","followers_url":"https://api.github.com/users/mbogoevici/followers","following_url":"https://api.github.com/users/mbogoevici/following{/other_user}","gists_url":"https://api.github.com/users/mbogoevici/gists{/gist_id}","starred_url":"https://api.github.com/users/mbogoevici/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbogoevici/subscriptions","organizations_url":"https://api.github.com/users/mbogoevici/orgs","repos_url":"https://api.github.com/users/mbogoevici/repos","events_url":"https://api.github.com/users/mbogoevici/events{/privacy}","received_events_url":"https://api.github.com/users/mbogoevici/received_events","type":"User","site_admin":false}],"milestone":null,"comments":0,"created_at":"2017-01-11T15:19:25Z","updated_at":"2017-01-11T15:19:25Z","closed_at":null,"body":"Looks like `direct binding` aka short circuiting channels does a bit too much with messages as can be seen from a hotstop from a profiler which lead into a Runnable. It seems that class parsing happens with every message.\r\n\r\n```\r\n\"pool-6-thread-1\" #28 prio=5 os_prio=0 tid=0x00007f70ed1f4800 nid=0xc38 runnable [0x00007f70e6c6b000]\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat java.lang.reflect.Array.$$YJP$$newArray(Native Method)\r\n\tat java.lang.reflect.Array.newArray(Array.java)\r\n\tat java.lang.reflect.Array.newInstance(Array.java:75)\r\n\tat java.util.AbstractCollection.toArray(AbstractCollection.java:179)\r\n\tat sun.reflect.annotation.AnnotationParser.toArray(AnnotationParser.java:865)\r\n\tat java.lang.reflect.Executable.getDeclaredAnnotations(Executable.java:588)\r\n\tat java.lang.reflect.Method.getDeclaredAnnotations(Method.java:630)\r\n\tat org.springframework.core.annotation.AnnotationUtils.findAnnotation(AnnotationUtils.java:522)\r\n\tat org.springframework.core.annotation.AnnotationUtils.findAnnotation(AnnotationUtils.java:504)\r\n\tat org.springframework.core.annotation.AnnotationUtils.findAnnotation(AnnotationUtils.java:570)\r\n\tat org.springframework.cloud.stream.binding.BindableProxyFactory.invoke(BindableProxyFactory.java:88)\r\n\t- locked <0x00000003d4bae320> (a org.springframework.cloud.stream.binding.BindableProxyFactory)\r\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)\r\n\tat org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)\r\n\tat com.sun.proxy.$Proxy102.output(Unknown Source)\r\n\tat org.springframework.cloud.stream.app.load.generator.source.LoadGeneratorSourceConfiguration$Producer.run(LoadGeneratorSourceConfiguration.java:109)\r\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\r\n\tat java.lang.Thread.run(Thread.java:745)\r\n\r\n```"}}
{"actor":{"display_login":"jvalkeal"}}