Compiles with 2.12, 2.13 and 3.3 + new result file format for google sheet#4
Open
b-gyula wants to merge 11 commits intolihaoyi:masterfrom
Open
Compiles with 2.12, 2.13 and 3.3 + new result file format for google sheet#4b-gyula wants to merge 11 commits intolihaoyi:masterfrom
b-gyula wants to merge 11 commits intolihaoyi:masterfrom
Conversation
- sbt upto 1.4.8 (for java 11) - repetition can be passed as main program argument to PerfMain - array, buffer indexing extracted from "lookup" benchmark into: "index" - added some new sizes to test - column width changed for small sizes
- do not initialize test case @ each execution - do not run initialization for 2sec before test case execution
- the result file name can be defined as 2nd command line parameter
- Enum used for Benchmark names - removed gradle common 'scala-common-conventions' - Added 'ArrayBuilder', 'ArraySeq', 'VectorBuilder' - `Analyze` can take the result file name as command line parameter - benchmark case 'Set' 'concat' uses unique values - removed ammonite dependency
- ArraySeq used: less collection duplication + quicker index lookups in 'contains' cases
… to skip - Added 'm.ArraySeq.for' 'contains' case looping the keys in a `for` instead of `while` loop
- benchmark loops moved into Performance - mill build
* New output format for better js support:
- result: {benchmark type} -> {case} -> {array of average times} (all the times are saved in the )
- sizes: the collection sizes used the result's array contains the times in the same order
- prams: the execution parameters: loop count, time, scala, jvm version and the timestamp of the end of execution
* New benchmarks cases:
- remove / List.init
- remove / m.ListBuffer
- concat / Map-same
- concat / Set-same
- loop / Vector-for
- loop / Vector-while
- loop / [m.]Set-for
- loop / [m.]Map-for
- loop / Array-for
- loop / m.ArraySeq-while
- loop / m.ListBuffer-while
- loop / m.ListBuffer-foreach
- loop / m.ListBuffer-for
- loop / m.(Array)Buffer-for
- loop / m.(Array)Buffer-while
* Compiles with 2.12, 2.13 and 3.3 with one exception: case `build / m.ArraySeq.update` (no cross compilation yet, the scala version needs to be changed manually in the build script)
* use the same objects for all performance test cases to reduce memory consumption
* benchmark 'foreach' -> 'loop'
* 'loop' cases use unified functions for clearity
+ added check for duplicate case names
+ added `macros.gs` containing AppScript to import and format results in a Google sheet
+ added `bench.Memory` mill command to run the memory benchmark
- `gradle` build removed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
build / m.ArraySeq.update(no cross compilation yet, the scala version needs to be changed manually in the build script)macros.gscontaining AppScript to import and format results in a Google sheetbench.Memorymill command to run the memory benchmark