{"action":"created","issue":{"url":"https://api.github.com/repos/guardian/content-api-models/issues/43","repository_url":"https://api.github.com/repos/guardian/content-api-models","labels_url":"https://api.github.com/repos/guardian/content-api-models/issues/43/labels{/name}","comments_url":"https://api.github.com/repos/guardian/content-api-models/issues/43/comments","events_url":"https://api.github.com/repos/guardian/content-api-models/issues/43/events","html_url":"https://github.com/guardian/content-api-models/pull/43","id":164072683,"number":43,"title":"Improve the Thrift struct Decoder macro to only use shapeless Lazy where necessary","user":{"login":"cb372","id":106760,"avatar_url":"https://avatars.githubusercontent.com/u/106760?v=3","gravatar_id":"","url":"https://api.github.com/users/cb372","html_url":"https://github.com/cb372","followers_url":"https://api.github.com/users/cb372/followers","following_url":"https://api.github.com/users/cb372/following{/other_user}","gists_url":"https://api.github.com/users/cb372/gists{/gist_id}","starred_url":"https://api.github.com/users/cb372/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cb372/subscriptions","organizations_url":"https://api.github.com/users/cb372/orgs","repos_url":"https://api.github.com/users/cb372/repos","events_url":"https://api.github.com/users/cb372/events{/privacy}","received_events_url":"https://api.github.com/users/cb372/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-07-06T13:14:54Z","updated_at":"2016-07-06T14:05:47Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/guardian/content-api-models/pulls/43","html_url":"https://github.com/guardian/content-api-models/pull/43","diff_url":"https://github.com/guardian/content-api-models/pull/43.diff","patch_url":"https://github.com/guardian/content-api-models/pull/43.patch"},"body":"This is because use of Lazy incurs a runtime cost. We should only use it when we need it to hack around implicit resolution problems in the compiler.\n\nBefore:\n\n```\n[info] Benchmark                                        Mode  Cnt        Score       Error  Units\n[info] JsonDecodeBenchmark.circe                        avgt   40   104592.251 ±  4303.060  ns/op\n[info] JsonDecodeBenchmark.circeDeserializeEachContent  avgt   40  1751011.694 ± 93215.817  ns/op\n```\n\nAfter:\n\n```\n[info] Benchmark                                        Mode  Cnt        Score       Error  Units\n[info] JsonDecodeBenchmark.circe                        avgt   40    95609.173 ±  1740.968  ns/op\n[info] JsonDecodeBenchmark.circeDeserializeEachContent  avgt   40  1344281.162 ± 47547.969  ns/op\n```\n\nAlso\n\n* Add a benchmark for a very large, heavily nested response\n* Tweak dependencies"},"comment":{"url":"https://api.github.com/repos/guardian/content-api-models/issues/comments/230781482","html_url":"https://github.com/guardian/content-api-models/pull/43#issuecomment-230781482","issue_url":"https://api.github.com/repos/guardian/content-api-models/issues/43","id":230781482,"user":{"login":"cb372","id":106760,"avatar_url":"https://avatars.githubusercontent.com/u/106760?v=3","gravatar_id":"","url":"https://api.github.com/users/cb372","html_url":"https://github.com/cb372","followers_url":"https://api.github.com/users/cb372/followers","following_url":"https://api.github.com/users/cb372/following{/other_user}","gists_url":"https://api.github.com/users/cb372/gists{/gist_id}","starred_url":"https://api.github.com/users/cb372/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cb372/subscriptions","organizations_url":"https://api.github.com/users/cb372/orgs","repos_url":"https://api.github.com/users/cb372/repos","events_url":"https://api.github.com/users/cb372/events{/privacy}","received_events_url":"https://api.github.com/users/cb372/received_events","type":"User","site_admin":false},"created_at":"2016-07-06T14:05:47Z","updated_at":"2016-07-06T14:05:47Z","body":"Ran the Concierge tests against this version and everything still seems to work."}}
{"actor":{"display_login":"cb372"}}