diff options
author | Christopher Vogt <oss.nsp@cvogt.org> | 2017-03-19 20:04:08 -0400 |
---|---|---|
committer | Christopher Vogt <oss.nsp@cvogt.org> | 2017-03-27 23:54:16 -0400 |
commit | a29fa8b51a167102d807330ce0c65d015e5c44e3 (patch) | |
tree | d0e898c609c56f4e07a7e70005c7cc32df27358d /stage1/resolver.scala | |
parent | 90df89c5de90e69e7fdada655b169d0e48de0f57 (diff) | |
download | cbt-a29fa8b51a167102d807330ce0c65d015e5c44e3.tar.gz cbt-a29fa8b51a167102d807330ce0c65d015e5c44e3.tar.bz2 cbt-a29fa8b51a167102d807330ce0c65d015e5c44e3.zip |
performance tweak: cache hashes in memory
Diffstat (limited to 'stage1/resolver.scala')
-rw-r--r-- | stage1/resolver.scala | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/stage1/resolver.scala b/stage1/resolver.scala index 4f6a2ef..866105e 100644 --- a/stage1/resolver.scala +++ b/stage1/resolver.scala @@ -286,10 +286,15 @@ case class BoundMavenDependency( } private def resolveHash(suffix: String, useClassifier: Boolean) = { - Files.readAllLines( - resolve( suffix ++ ".sha1", None, useClassifier ).toPath, - StandardCharsets.UTF_8 - ).mkString("\n").split(" ").head.trim + val path = resolve( suffix ++ ".sha1", None, useClassifier ).toPath + Option( classLoaderCache.hashMap.get("hash:"+path) ).map(_.asInstanceOf[String]).getOrElse{ + val result = Files.readAllLines( + path, + StandardCharsets.UTF_8 + ).mkString("\n").split(" ").head.trim + classLoaderCache.hashMap.put("hash:"+path, result) + result + } } def jarSha1: String = taskCache[BoundMavenDependency]("jarSha1").memoize{ resolveHash("jar", true) } |