Don't allocate Kryo buffers unless needed

Project: http://git-wip-us.apache.org/repos/asf/incubator-spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-spark/commit/a8725bf8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-spark/tree/a8725bf8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-spark/diff/a8725bf8

Branch: refs/heads/scala-2.10
Commit: a8725bf8f82ffea215afe7dd6c9ea1df36618e5b
Parents: 4a25b11
Author: Matei Zaharia <ma...@eecs.berkeley.edu>
Authored: Mon Oct 7 15:31:30 2013 -0700
Committer: Matei Zaharia <ma...@eecs.berkeley.edu>
Committed: Mon Oct 7 19:16:35 2013 -0700

----------------------------------------------------------------------
 .../scala/org/apache/spark/serializer/KryoSerializer.scala   | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-spark/blob/a8725bf8/core/src/main/scala/org/apache/spark/serializer/KryoSerializer.scala
----------------------------------------------------------------------
diff --git 
a/core/src/main/scala/org/apache/spark/serializer/KryoSerializer.scala 
b/core/src/main/scala/org/apache/spark/serializer/KryoSerializer.scala
index 24ef204..6c500ba 100644
--- a/core/src/main/scala/org/apache/spark/serializer/KryoSerializer.scala
+++ b/core/src/main/scala/org/apache/spark/serializer/KryoSerializer.scala
@@ -38,8 +38,6 @@ class KryoSerializer extends 
org.apache.spark.serializer.Serializer with Logging
 
   def newKryoOutput() = new KryoOutput(bufferSize)
 
-  def newKryoInput() = new KryoInput(bufferSize)
-
   def newKryo(): Kryo = {
     val instantiator = new ScalaKryoInstantiator
     val kryo = instantiator.newKryo()
@@ -118,8 +116,10 @@ class KryoDeserializationStream(kryo: Kryo, inStream: 
InputStream) extends Deser
 
 private[spark] class KryoSerializerInstance(ks: KryoSerializer) extends 
SerializerInstance {
   val kryo = ks.newKryo()
-  val output = ks.newKryoOutput()
-  val input = ks.newKryoInput()
+
+  // Make these lazy vals to avoid creating a buffer unless we use them
+  lazy val output = ks.newKryoOutput()
+  lazy val input = new KryoInput()
 
   def serialize[T](t: T): ByteBuffer = {
     output.clear()

Reply via email to