{"action":"closed","issue":{"url":"https://api.github.com/repos/twitter/chill/issues/291","repository_url":"https://api.github.com/repos/twitter/chill","labels_url":"https://api.github.com/repos/twitter/chill/issues/291/labels{/name}","comments_url":"https://api.github.com/repos/twitter/chill/issues/291/comments","events_url":"https://api.github.com/repos/twitter/chill/issues/291/events","html_url":"https://github.com/twitter/chill/issues/291","id":227366231,"number":291,"title":"Deserialisation performance regression (0.6.0 -> 0.8.0)","user":{"login":"keynmol","id":1052965,"avatar_url":"https://avatars0.githubusercontent.com/u/1052965?v=3","gravatar_id":"","url":"https://api.github.com/users/keynmol","html_url":"https://github.com/keynmol","followers_url":"https://api.github.com/users/keynmol/followers","following_url":"https://api.github.com/users/keynmol/following{/other_user}","gists_url":"https://api.github.com/users/keynmol/gists{/gist_id}","starred_url":"https://api.github.com/users/keynmol/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/keynmol/subscriptions","organizations_url":"https://api.github.com/users/keynmol/orgs","repos_url":"https://api.github.com/users/keynmol/repos","events_url":"https://api.github.com/users/keynmol/events{/privacy}","received_events_url":"https://api.github.com/users/keynmol/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2017-05-09T13:26:27Z","updated_at":"2017-05-10T17:41:18Z","closed_at":"2017-05-10T17:41:18Z","body":"Hey guys. Is there any log of deserialisation regressions between 0.6.0 and 0.8.0? I recently upgraded and noticed serious performance regression. \r\n\r\nThe file is 4.5M, basically a serialised Scala structure \r\n```\r\ncase class ContextTokenStore(tokenLookup: Map[String, Int], idLookup: Map[Int, String], tokenTotalCounts: Map[Int, Int])\r\n```\r\n\r\nThe hashcodes of both structures produced by different versions are exactly the same\r\n\r\nKryo is initialised as such:\r\n\r\n```scala\r\nval instantiator = (new ScalaKryoInstantiator).setReferences(false)\r\n  val kryo: KryoPool = KryoPool.withByteArrayOutputStream(10, instantiator)\r\n...\r\n  def load[T](file: File): T = {\r\n    val bytes = file.loadBytes\r\n    val store: T = kryo.fromBytes(bytes).asInstanceOf[T]\r\n\r\n    store\r\n  }\r\n```\r\n\r\nThe file size is the same if produced by both 0.6.0 and 0.8.0, but the loading from disk times vary significantly (basically loading 20 times, times in milliseconds):\r\n\r\n**0.6.0**\r\n```\r\n[loading] took 562, and then 228, 179, 168, 117, 120, 138, 128, 125, 139, 130, 123, 137, 134, 120, 132, 141, 143, 144, 154\r\n```\r\n\r\n**0.8.0**\r\n```\r\n [loading] took 3081, and then 1859, 1813, 1722, 1622, 1688, 1704, 1881, 2603, 2164, 2040, 1946, 2010, 2063, 2053, 2159, 2717, 2065, 2276, 2381\r\n```\r\n\r\nAny clue as to where to look?"}}
{"actor":{"display_login":"keynmol"}}