Skip to content

Instantly share code, notes, and snippets.

@retronym
Created June 20, 2018 01:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save retronym/e71869a5499b517dc681a169c477fdf3 to your computer and use it in GitHub Desktop.
Save retronym/e71869a5499b517dc681a169c477fdf3 to your computer and use it in GitHub Desktop.
ASM performance regression
"pool-10-thread-12" #99 prio=5 os_prio=0 tid=0x00007f58b97a2000 nid=0xe00 runnable [0x00007f5854bf8000]
java.lang.Thread.State: RUNNABLE
at java.util.AbstractCollection.addAll(AbstractCollection.java:343)
at scala.tools.asm.tree.analysis.SourceInterpreter.merge(SourceInterpreter.java:206)
at scala.tools.asm.tree.analysis.SourceInterpreter.merge(SourceInterpreter.java:47)
at scala.tools.asm.tree.analysis.Frame.merge(Frame.java:665)
at scala.tools.asm.tree.analysis.Analyzer.merge(Analyzer.java:529)
at scala.tools.asm.tree.analysis.Analyzer.analyze(Analyzer.java:279)
at scala.tools.nsc.backend.jvm.analysis.BackendUtils$AsmAnalyzer.<init>(BackendUtils.scala:87)
at scala.tools.nsc.backend.jvm.analysis.BackendUtils$ProdConsAnalyzer.<init>(BackendUtils.scala:115)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer.prodCons$lzycompute$1(ClosureOptimizer.scala:106)
- locked <0x00000000fda8b430> (a scala.runtime.LazyRef)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer.prodCons$1(ClosureOptimizer.scala:106)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer.$anonfun$rewriteClosureApplyInvocations$5(ClosureOptimizer.scala:108)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer$$Lambda$1661/1920357173.apply(Unknown Source)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer.scala$tools$nsc$backend$jvm$opt$ClosureOptimizer$$isSamInvocation(ClosureOptimizer.scala:211)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer$$anonfun$closureCallsites$1.isDefinedAt(ClosureOptimizer.scala:161)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer$$anonfun$closureCallsites$1.isDefinedAt(ClosureOptimizer.scala:160)
at scala.collection.Iterator$$anon$7.hasNext(Iterator.scala:430)
at scala.collection.mutable.Growable.addAll(Growable.scala:48)
at scala.collection.mutable.Growable.addAll$(Growable.scala:46)
at scala.collection.mutable.AbstractBuffer.addAll(Buffer.scala:189)
at scala.collection.mutable.ListBuffer$.from(ListBuffer.scala:285)
at scala.collection.immutable.List$.from(List.scala:574)
at scala.collection.IterableOnceOps.toList(IterableOnce.scala:1050)
at scala.collection.IterableOnceOps.toList$(IterableOnce.scala:1050)
at scala.collection.AbstractIterator.toList(Iterator.scala:1086)
"pool-10-thread-12" #99 prio=5 os_prio=0 tid=0x00007f58b97a2000 nid=0xe00 runnable [0x00007f5854bf8000]
java.lang.Thread.State: RUNNABLE
at java.util.HashMap.hash(HashMap.java:339)
at java.util.HashMap.put(HashMap.java:612)
at java.util.HashSet.add(HashSet.java:220)
at java.util.AbstractCollection.addAll(AbstractCollection.java:344)
at scala.tools.asm.tree.analysis.SourceInterpreter.merge(SourceInterpreter.java:207)
at scala.tools.asm.tree.analysis.SourceInterpreter.merge(SourceInterpreter.java:47)
at scala.tools.asm.tree.analysis.Frame.merge(Frame.java:665)
at scala.tools.asm.tree.analysis.Analyzer.merge(Analyzer.java:529)
at scala.tools.asm.tree.analysis.Analyzer.analyze(Analyzer.java:185)
at scala.tools.nsc.backend.jvm.analysis.BackendUtils$AsmAnalyzer.<init>(BackendUtils.scala:87)
at scala.tools.nsc.backend.jvm.analysis.BackendUtils$ProdConsAnalyzer.<init>(BackendUtils.scala:115)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer.prodCons$lzycompute$1(ClosureOptimizer.scala:106)
- locked <0x00000000ca0f5b88> (a scala.runtime.LazyRef)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer.prodCons$1(ClosureOptimizer.scala:106)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer.$anonfun$rewriteClosureApplyInvocations$5(ClosureOptimizer.scala:108)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer$$Lambda$1661/1920357173.apply(Unknown Source)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer.scala$tools$nsc$backend$jvm$opt$ClosureOptimizer$$isSamInvocation(ClosureOptimizer.scala:211)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer$$anonfun$closureCallsites$1.isDefinedAt(ClosureOptimizer.scala:161)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer$$anonfun$closureCallsites$1.isDefinedAt(ClosureOptimizer.scala:160)
at scala.collection.Iterator$$anon$7.hasNext(Iterator.scala:430)
at scala.collection.mutable.Growable.addAll(Growable.scala:48)
at scala.collection.mutable.Growable.addAll$(Growable.scala:46)
at scala.collection.mutable.AbstractBuffer.addAll(Buffer.scala:189)
at scala.collection.mutable.ListBuffer$.from(ListBuffer.scala:285)
at scala.collection.immutable.List$.from(List.scala:574)
at scala.collection.IterableOnceOps.toList(IterableOnce.scala:1050)
at scala.collection.IterableOnceOps.toList$(IterableOnce.scala:1050)
"pool-10-thread-12" #99 prio=5 os_prio=0 tid=0x00007f58b97a2000 nid=0xe00 runnable [0x00007f5854bf8000]
java.lang.Thread.State: RUNNABLE
at java.util.AbstractCollection.addAll(AbstractCollection.java:343)
at scala.tools.asm.tree.analysis.SourceInterpreter.merge(SourceInterpreter.java:206)
at scala.tools.asm.tree.analysis.SourceInterpreter.merge(SourceInterpreter.java:47)
at scala.tools.asm.tree.analysis.Frame.merge(Frame.java:665)
at scala.tools.asm.tree.analysis.Analyzer.merge(Analyzer.java:529)
at scala.tools.asm.tree.analysis.Analyzer.analyze(Analyzer.java:185)
at scala.tools.nsc.backend.jvm.analysis.BackendUtils$AsmAnalyzer.<init>(BackendUtils.scala:87)
at scala.tools.nsc.backend.jvm.analysis.BackendUtils$ProdConsAnalyzer.<init>(BackendUtils.scala:115)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer.prodCons$lzycompute$1(ClosureOptimizer.scala:106)
- locked <0x00000000ca0f5b88> (a scala.runtime.LazyRef)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer.prodCons$1(ClosureOptimizer.scala:106)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer.$anonfun$rewriteClosureApplyInvocations$5(ClosureOptimizer.scala:108)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer$$Lambda$1661/1920357173.apply(Unknown Source)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer.scala$tools$nsc$backend$jvm$opt$ClosureOptimizer$$isSamInvocation(ClosureOptimizer.scala:211)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer$$anonfun$closureCallsites$1.isDefinedAt(ClosureOptimizer.scala:161)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer$$anonfun$closureCallsites$1.isDefinedAt(ClosureOptimizer.scala:160)
at scala.collection.Iterator$$anon$7.hasNext(Iterator.scala:430)
at scala.collection.mutable.Growable.addAll(Growable.scala:48)
at scala.collection.mutable.Growable.addAll$(Growable.scala:46)
2418:
num #instances #bytes class name
----------------------------------------------
1: 1398758 138344896 [C
2: 402801 39967896 [Ljava.lang.Object;
3: 1398224 33557376 java.lang.String
4: 432688 27692032 scala.tools.asm.Label
5: 988863 23732712 scala.collection.immutable.$colon$colon
6: 432687 20768976 scala.tools.nsc.backend.jvm.LabelNode1
7: 461089 18443560 scala.tools.asm.tree.VarInsnNode
8: 496140 15876480 scala.reflect.internal.Symbols$TypeHistory
9: 262524 14701344 scala.tools.asm.tree.MethodInsnNode
10: 176065 12676680 scala.reflect.internal.Symbols$TermSymbol
11: 295444 11817760 scala.reflect.internal.Trees$Select
12: 280147 11205880 scala.reflect.internal.util.WeakHashSet$Entry
13: 172709 9671704 scala.tools.nsc.backend.jvm.opt.CallGraph$Callsite
14: 224979 8999160 scala.reflect.internal.Trees$Apply
15: 28492 8889504 [Lscala.tools.asm.tree.analysis.Value;
16: 72123 8654760 scala.tools.nsc.backend.jvm.MethodNode1
17: 268880 8604160 scala.reflect.internal.Scopes$ScopeEntry
18: 209452 8378080 scala.reflect.internal.Trees$Ident
19: 206586 8263440 scala.tools.asm.tree.InsnNode
20: 83712 7366656 scala.reflect.internal.Symbols$MethodSymbol
21: 178919 7156760 scala.collection.mutable.FlatHashTable
22: 288838 6932112 scala.reflect.internal.util.OffsetPosition
23: 215454 6894528 scala.reflect.internal.Types$MethodType
24: 275139 6603336 java.util.ArrayList
25: 152647 6105880 scala.tools.asm.tree.LocalVariableNode
26: 147380 5895200 scala.reflect.internal.Trees$TypeTree
27: 42436 5826640 [I
28: 145217 5808680 scala.tools.nsc.backend.jvm.opt.CallGraph$Callee
29: 239117 5738808 scala.collection.immutable.HashSet$HashSet1
30: 214164 5139936 scala.collection.concurrent.SNode
31: 123809 4952360 scala.tools.asm.tree.JumpInsnNode
32: 113709 4548360 scala.reflect.internal.Trees$Modifiers
33: 34241 4210144 [Lscala.tools.asm.tree.AbstractInsnNode;
"pool-10-thread-12" #99 prio=5 os_prio=0 tid=0x00007f58b97a2000 nid=0xe00 runnable [0x00007f5854bf9000]
java.lang.Thread.State: RUNNABLE
at java.util.AbstractCollection.addAll(AbstractCollection.java:343)
at scala.tools.asm.tree.analysis.SourceInterpreter.merge(SourceInterpreter.java:207)
at scala.tools.asm.tree.analysis.SourceInterpreter.merge(SourceInterpreter.java:47)
at scala.tools.asm.tree.analysis.Frame.merge(Frame.java:665)
at scala.tools.asm.tree.analysis.Analyzer.merge(Analyzer.java:529)
at scala.tools.asm.tree.analysis.Analyzer.analyze(Analyzer.java:185)
at scala.tools.nsc.backend.jvm.analysis.BackendUtils$AsmAnalyzer.<init>(BackendUtils.scala:87)
at scala.tools.nsc.backend.jvm.analysis.BackendUtils$ProdConsAnalyzer.<init>(BackendUtils.scala:115)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer.prodCons$lzycompute$1(ClosureOptimizer.scala:106)
- locked <0x00000000cc2d8f70> (a scala.runtime.LazyRef)
at scala.tools.nsc.backend.jvm.opt.ClosureOptimizer.prodCons$1(ClosureOptimizer.scala:106)
java.lang.Thread.State: RUNNABLE
at java.util.HashMap.hash(HashMap.java:339)
at java.util.HashMap.put(HashMap.java:612)
at java.util.HashSet.add(HashSet.java:220)
at java.util.AbstractCollection.addAll(AbstractCollection.java:344)
at scala.tools.asm.tree.analysis.SourceInterpreter.merge(SourceInterpreter.java:206)
at scala.tools.asm.tree.analysis.SourceInterpreter.merge(SourceInterpreter.java:47)
at scala.tools.asm.tree.analysis.Frame.merge(Frame.java:665)
at scala.tools.asm.tree.analysis.Analyzer.merge(Analyzer.java:529)
at scala.tools.asm.tree.analysis.Analyzer.analyze(Analyzer.java:185)
at scala.tools.nsc.backend.jvm.analysis.BackendUtils$AsmAnalyzer.<init>(BackendUtils.scala:87)
at scala.tools.nsc.backend.jvm.analysis.BackendUtils$ProdConsAnalyzer.<init>(BackendUtils.scala:1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment