From a6ba23fee7f98a95f73d4239a1ae0508ad72e5a5 Mon Sep 17 00:00:00 2001 From: friendseeker <66892505+Friendseeker@users.noreply.github.com> Date: Fri, 4 Oct 2024 20:48:27 -0700 Subject: [PATCH] Use snappy --- build.sbt | 3 ++- .../inc/consistent/ConsistentFileAnalysisStore.scala | 11 ++++++++--- project/Dependencies.scala | 1 + 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/build.sbt b/build.sbt index 433721fdc..5c73c640a 100644 --- a/build.sbt +++ b/build.sbt @@ -283,7 +283,8 @@ lazy val zincPersist = (projectMatrix in internalPath / "zinc-persist") name := "zinc Persist", libraryDependencies ++= Seq( sbinary.exclude("org.scala-lang.modules", "scala-xml_" + scalaBinaryVersion.value), - scalaXml + scalaXml, + snappy, ), compileOrder := sbt.CompileOrder.Mixed, Compile / scalacOptions ++= (scalaVersion.value match { diff --git a/internal/zinc-persist/src/main/scala/sbt/internal/inc/consistent/ConsistentFileAnalysisStore.scala b/internal/zinc-persist/src/main/scala/sbt/internal/inc/consistent/ConsistentFileAnalysisStore.scala index 5cb69fcab..0e9c457fc 100644 --- a/internal/zinc-persist/src/main/scala/sbt/internal/inc/consistent/ConsistentFileAnalysisStore.scala +++ b/internal/zinc-persist/src/main/scala/sbt/internal/inc/consistent/ConsistentFileAnalysisStore.scala @@ -12,6 +12,8 @@ package sbt.internal.inc.consistent * additional information regarding copyright ownership. */ +import org.xerial.snappy.{ SnappyInputStream, SnappyOutputStream } + import java.io.{ File, FileInputStream, FileOutputStream } import java.util.Optional import sbt.io.{ IO, Using } @@ -85,7 +87,7 @@ object ConsistentFileAnalysisStore { if (!file.getParentFile.exists()) file.getParentFile.mkdirs() val fout = new FileOutputStream(tmpAnalysisFile) try { - val gout = new ParallelGzipOutputStream(fout, ec, parallelism) + val gout = new SnappyOutputStream(fout) val ser = sf.serializerFor(gout) format.write(ser, analysis, setup) gout.close() @@ -98,11 +100,14 @@ object ConsistentFileAnalysisStore { allCatch.opt(unsafeGet()).toOptional } - def unsafeGet(): AnalysisContents = - Using.gzipInputStream(new FileInputStream(file)) { in => + def unsafeGet(): AnalysisContents = { + Using.resource(new SnappyInputStream(_: FileInputStream))( + new FileInputStream(file) + ) { in => val deser = sf.deserializerFor(in) val (analysis, setup) = format.read(deser) AnalysisContents.create(analysis, setup) } + } } } diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 7387f699d..de787ae24 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -85,6 +85,7 @@ object Dependencies { "com.eed3si9n" %% "sjson-new-scalajson" % contrabandSjsonNewVersion.value } val zeroAllocationHashing = "net.openhft" % "zero-allocation-hashing" % "0.16" + val snappy = "org.xerial.snappy" % "snappy-java" % "1.1.10.7" val scala2BinaryBridge = "org.scala-lang" % "scala2-sbt-bridge" % scala213ForBridge val scala3BinaryBridge = "org.scala-lang" % "scala3-sbt-bridge" % scala3ForBridge