{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/24966","repository_url":"https://api.github.com/repos/kubernetes/kubernetes","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/24966/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/24966/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/24966/events","html_url":"https://github.com/kubernetes/kubernetes/pull/24966","id":151791703,"number":24966,"title":"Remove all reflection for locating defaulting functions","user":{"login":"smarterclayton","id":1163175,"avatar_url":"https://avatars.githubusercontent.com/u/1163175?v=3","gravatar_id":"","url":"https://api.github.com/users/smarterclayton","html_url":"https://github.com/smarterclayton","followers_url":"https://api.github.com/users/smarterclayton/followers","following_url":"https://api.github.com/users/smarterclayton/following{/other_user}","gists_url":"https://api.github.com/users/smarterclayton/gists{/gist_id}","starred_url":"https://api.github.com/users/smarterclayton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smarterclayton/subscriptions","organizations_url":"https://api.github.com/users/smarterclayton/orgs","repos_url":"https://api.github.com/users/smarterclayton/repos","events_url":"https://api.github.com/users/smarterclayton/events{/privacy}","received_events_url":"https://api.github.com/users/smarterclayton/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/area/performance","name":"area/performance","color":"d4c5f9"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/cla:%20yes","name":"cla: yes","color":"bfe5bf"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/lgtm","name":"lgtm","color":"15dd18"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/priority/P2","name":"priority/P2","color":"fbca04"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/release-note-none","name":"release-note-none","color":"c2e0c6"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/size/L","name":"size/L","color":"ee9900"}],"state":"closed","locked":false,"assignee":{"login":"wojtek-t","id":10743879,"avatar_url":"https://avatars.githubusercontent.com/u/10743879?v=3","gravatar_id":"","url":"https://api.github.com/users/wojtek-t","html_url":"https://github.com/wojtek-t","followers_url":"https://api.github.com/users/wojtek-t/followers","following_url":"https://api.github.com/users/wojtek-t/following{/other_user}","gists_url":"https://api.github.com/users/wojtek-t/gists{/gist_id}","starred_url":"https://api.github.com/users/wojtek-t/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wojtek-t/subscriptions","organizations_url":"https://api.github.com/users/wojtek-t/orgs","repos_url":"https://api.github.com/users/wojtek-t/repos","events_url":"https://api.github.com/users/wojtek-t/events{/privacy}","received_events_url":"https://api.github.com/users/wojtek-t/received_events","type":"User","site_admin":false},"milestone":null,"comments":19,"created_at":"2016-04-29T04:38:28Z","updated_at":"2016-05-08T13:17:53Z","closed_at":"2016-05-08T13:17:53Z","pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/24966","html_url":"https://github.com/kubernetes/kubernetes/pull/24966","diff_url":"https://github.com/kubernetes/kubernetes/pull/24966.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/24966.patch"},"body":"Instead of reflecting to access defaulters, generate them inline as public method calls which removes the need to allocate (reflection is expensive in terms of allocation).\n\nBenefits protobuf much more than JSON, since protobuf is faster than conversion while JSON is 5x slower.\n\nFirst two commits in #24907\n\n```\nbenchmark                                      old ns/op     new ns/op     delta\nBenchmarkPodConversion-8                       16122         9511          -41.01%\nBenchmarkNodeConversion-8                      16510         12798         -22.48%\nBenchmarkReplicationControllerConversion-8     16334         10316         -36.84%\nBenchmarkEncodeCodecFromInternalProtobuf-8     15663         12486         -20.28%\nBenchmarkDecodeCodecToInternalProtobuf-8       21473         17914         -16.57%\nBenchmarkEncodeCodecFromInternal-8             39702         36185         -8.86%\nBenchmarkDecodeCodec-8                         94954         87997         -7.33%\nBenchmarkDecodeIntoInternalCodec-8             92392         88090         -4.66%\n\nbenchmark                                      old allocs     new allocs     delta\nBenchmarkPodConversion-8                       80             44             -45.00%\nBenchmarkNodeConversion-8                      113            93             -17.70%\nBenchmarkReplicationControllerConversion-8     78             46             -41.03%\nBenchmarkEncodeCodecFromInternalProtobuf-8     63             46             -26.98%\nBenchmarkDecodeCodecToInternalProtobuf-8       132            115            -12.88%\nBenchmarkEncodeCodecFromInternal-8             97             80             -17.53%\nBenchmarkDecodeCodec-8                         316            299            -5.38%\nBenchmarkDecodeIntoInternalCodec-8             317            300            -5.36%\n\nbenchmark                                      old bytes     new bytes     delta\nBenchmarkPodConversion-8                       9133          4666          -48.91%\nBenchmarkNodeConversion-8                      8957          6371          -28.87%\nBenchmarkReplicationControllerConversion-8     9373          5339          -43.04%\nBenchmarkEncodeCodecFromInternalProtobuf-8     7720          5800          -24.87%\nBenchmarkDecodeCodecToInternalProtobuf-8       10126         8124          -19.77%\nBenchmarkEncodeCodecFromInternal-8             9876          7945          -19.55%\nBenchmarkDecodeCodec-8                         17402         15401         -11.50%\nBenchmarkDecodeIntoInternalCodec-8             17482         15481         -11.45%\n```"},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/217718133","html_url":"https://github.com/kubernetes/kubernetes/pull/24966#issuecomment-217718133","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/24966","id":217718133,"user":{"login":"k8s-merge-robot","id":13653959,"avatar_url":"https://avatars.githubusercontent.com/u/13653959?v=3","gravatar_id":"","url":"https://api.github.com/users/k8s-merge-robot","html_url":"https://github.com/k8s-merge-robot","followers_url":"https://api.github.com/users/k8s-merge-robot/followers","following_url":"https://api.github.com/users/k8s-merge-robot/following{/other_user}","gists_url":"https://api.github.com/users/k8s-merge-robot/gists{/gist_id}","starred_url":"https://api.github.com/users/k8s-merge-robot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/k8s-merge-robot/subscriptions","organizations_url":"https://api.github.com/users/k8s-merge-robot/orgs","repos_url":"https://api.github.com/users/k8s-merge-robot/repos","events_url":"https://api.github.com/users/k8s-merge-robot/events{/privacy}","received_events_url":"https://api.github.com/users/k8s-merge-robot/received_events","type":"User","site_admin":false},"created_at":"2016-05-08T13:17:53Z","updated_at":"2016-05-08T13:17:53Z","body":"Automatic merge from submit-queue"}}