Re-assigning a variable in the REPL leads to memory leaks.
The original case had a few unnecessary features, but it boils down to re-assigning a fresh large array (100MB) to the same variable several times.
| #!/bin/bash -e | |
| # where Scala tarballs are extracted | |
| SCALA_BASE=$HOME/scala | |
| # Usage: | |
| # | |
| # Install: | |
| # . /path/to/scala-env.sh in your bash profile | |
| # |
| sealed abstract class Tree | |
| abstract class Expression extends Tree | |
| case class Apply() extends Expression | |
| class Foo(t: Tree) { | |
| // is this match exhaustive? | |
| t match { | |
| case Apply() => ??? | |
| } | |
| } |
| object Main { | |
| private var things: Array[Object] = null | |
| def allocate(size: Int): Unit = { | |
| things = new Array[Object](size) | |
| Array.fill(size)(new Object) | |
| } | |
| def main(args: Array[String]): Unit = { |
| 1,2d0 | |
| < #!/bin/bash | |
| < | |
| 33c31 | |
| < -e cpu/umask=0x01,event=0xC3,cmask=1,any=0,inv=0,edge,name=MACHINE_CLEARS.COUNT/ \ | |
| --- | |
| > -e cpu/umask=0x01,event=0xC3,cmask=1,any=0,inv=0,edge=1,name=MACHINE_CLEARS.COUNT/ \ | |
| 148c146 | |
| < L2_BOUND=$(compute "($LOAD_L2_HIT / ($LOAD_L2_HIT + $L1D_PEND_MISS_FB_FULL))") | |
| --- |
| IPC: 1.08 | |
| Frontend Bound: 21.58474134716533659800 | |
| Backend Bound: 41.05539791232042026700 | |
| Memory Bound (local): 65.85114476875492319500 | |
| L1 Bound: 24.79441407483482076800 | |
| L2 Bound: 325.63202789719244855000 | |
| L3 Bound: 19.84881997132453514100 | |
| Main Memory Bound: -272.27838043263752965500 | |
| Stores Bound: 2.00311848928572519500 | |
| Core Bound (local): 34.14885523124507680500 |
| class EnsimeActor(langServer: EnsimeLanguageServer, config: EnsimeConfig) extends Actor with LazyLogging { | |
| private var project: ActorRef = _ | |
| override val supervisorStrategy = OneForOneStrategy(5, 1 minute) { | |
| case e @ ActorInitializationException(actor, message, cause) => | |
| logger.error(s"Actor failed to initialize", e) | |
| langServer.connection.logMessage(MessageType.Error, s"Error starting ensime: $message") | |
| SupervisorStrategy.Restart | |
| case e => |
| $ scala | |
| Welcome to Scala version 2.11.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_25). | |
| Type in expressions to have them evaluated. | |
| Type :help for more information. | |
| scala> println("hello") // show | |
| object $read extends scala.AnyRef { | |
| def <init>() = { | |
| super.<init>; | |
| () |
I hereby claim:
To claim this, I am signing this object:
| // fails with: | |
| // $ /opt/scala-2.10.4/bin/scalac -d /tmp src/main/scala/infer.scala -cp ../spark/assembly/target/scala-2.10/spark-assembly-1.6.0-SNAPSHOT-hadoop2.2.0.jar | |
| // src/main/scala/infer.scala:27: error: missing parameter type for expanded function ((x$2) => x$2._2) | |
| // ds.groupBy(_._1).agg(sum(_._2), sum(_._3)).collect() | |
| // ^ | |
| // one error found | |
| // | |
| import org.apache.spark.sql.functions._ |