Skip to content

Add benchmarks to measure TASTY unpickling performance #3843

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
smarter opened this issue Jan 15, 2018 · 3 comments · Fixed by liufengyun/bench#218
Closed

Add benchmarks to measure TASTY unpickling performance #3843

smarter opened this issue Jan 15, 2018 · 3 comments · Fixed by liufengyun/bench#218

Comments

@smarter
Copy link
Member

smarter commented Jan 15, 2018

It would be good to have benchmarks that compile with -from-tasty to be able to track our unpickling performance.

@nicolasstucki
Copy link
Contributor

@liufengyun another reason to have benchmarks with different configurations.

@liufengyun
Copy link
Contributor

liufengyun commented Jan 16, 2018 via email

@nicolasstucki
Copy link
Contributor

nicolasstucki commented Jan 18, 2018

Here are some results of compiling with -Yhrough-tasty and -Yprofile-enabled (from #3801).

info run from-source            
header id phaseId phaseName wallClockTimeMs cpuTimeMs userTimeMs allocatedMB retainedHeapMB
data 199 1 frontend 72.481064 69.535 68.038 26.378384 24.307528
data 199 2 sbt-deps 0.015165 0.015 0.012 5.20E-04 0
data 199 3 posttyper 7.763745 7.765 7.738 2.950928 0
data 199 4 sbt-api 0.013871 0.014 0.011 5.20E-04 0
data 199 5 pickler 6.976645 6.955 6.934 2.099424 0
data 199 6 linkAll 0.00871 0.008 0.006 2.88E-04 0
data 199 7 reifyQuotes 0.01146 0.012 0.009 5.20E-04 0
data 199 8 MegaPhase{firstTransform checkReentrant elimPackagePrefixes} 1.75913 1.759 1.742 0.715792 0
data 199 11 MegaPhase{checkStatic elimRepeated normalizeFlags extmethods expandSAMs tailrec byNameClosures liftTry hoistSuperArgs classOf refchecks} 4.653578 4.654 4.636 2.28648 12.139248
data 199 22 MegaPhase{tryCatchPatterns patternMatcher explicitOuter explicitSelf shortcutImplicits crossCast splitter} 1.988733 1.988 1.986 0.989608 0
data 199 29 MegaPhase{phantomArgLift vcInlineMethods seqLiterals intercepted getters elimByName elimOuterSelect augmentScala2Traits resolveSuper simplify primitiveForwarders functionXXLForwarders arrayConstructors} 3.112688 3.109 3.085 0.903936 0
data 199 42 erasure 14.615891 14.617 14.333 7.070056 0
data 199 43 MegaPhase{elimErasedValueType vcElideAllocations mixin lazyVals memoize nonLocalReturns capturedVars} 5.350847 5.335 5.185 2.430032 12.179288
data 199 50 MegaPhase{constructors functionalInterfaces getClass simplify} 1.304022 1.304 1.292 0.392168 0
data 199 54 MegaPhase{linkScala2Impls lambdaLift elimStaticThis} 1.705283 1.706 1.701 0.434448 0
data 199 57 MegaPhase{flatten restoreScopes renameLifted transformWildcards moveStatic expandPrivate selectStatic collectEntryPoints collectSuperCalls dropInlined labelDef} 1.20336 1.203 1.193 0.49712 0
data 199 68 genBCode 29.745803 29.717 29.162 14.247848 12.139208
                 
        152.709995 149.696 147.063 61.398072 60.765272
info run from-tasty            
header id phaseId phaseName wallClockTimeMs cpuTimeMs userTimeMs allocatedMB retainedHeapMB
data 200 1 frontend 27.240898 27.181 26.04 14.294912 12.13928
data 200 2 linkAll 0.011341 0.012 0.008 2.88E-04 0
data 200 3 reifyQuotes 0.014052 0.014 0.011 5.20E-04 0
data 200 4 MegaPhase{firstTransform checkReentrant elimPackagePrefixes} 1.814573 1.815 1.812 0.70728 12.139208
data 200 7 MegaPhase{checkStatic elimRepeated normalizeFlags extmethods expandSAMs tailrec byNameClosures liftTry hoistSuperArgs classOf refchecks} 7.59384 7.58 7.546 3.536832 0
data 200 18 MegaPhase{tryCatchPatterns patternMatcher explicitOuter explicitSelf shortcutImplicits crossCast splitter} 2.215453 2.216 2.213 0.961832 0
data 200 25 MegaPhase{phantomArgLift vcInlineMethods seqLiterals intercepted getters elimByName elimOuterSelect augmentScala2Traits resolveSuper simplify primitiveForwarders functionXXLForwarders arrayConstructors} 3.674087 3.671 3.655 0.939728 0
data 200 38 erasure 22.894144 20.223 19.632 9.666552 12.139328
data 200 39 MegaPhase{elimErasedValueType vcElideAllocations mixin lazyVals memoize nonLocalReturns capturedVars} 1.854397 1.854 1.846 0.553256 0
data 200 46 MegaPhase{constructors functionalInterfaces getClass simplify} 1.259811 1.26 1.213 0.389872 0
data 200 50 MegaPhase{linkScala2Impls lambdaLift elimStaticThis} 1.681256 1.682 1.673 0.433472 0
data 200 53 MegaPhase{flatten restoreScopes renameLifted transformWildcards moveStatic expandPrivate selectStatic collectEntryPoints collectSuperCalls dropInlined labelDef} 1.272511 1.273 1.26 0.491944 0
data 200 64 genBCode 29.798763 29.737 29.116 13.504344 12.1392
                 
        101.325126 98.518 96.025 45.480832 48.557016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants