Commit Graph

768 Commits

Author SHA1 Message Date
Harendra Kumar
3d79168e4b Add isolated benchmarks to investigate special cases 2018-11-06 04:36:41 +05:30
Harendra Kumar
bf4e5d89ec Add mixed ops x 2 and iterated benchmarks to base
Also, fix comparative graph generation, titles etc.
2018-11-06 03:12:08 +05:30
Harendra Kumar
6279c37f9a Fix reports for StreamD/K
We want single group reports with diffs.
2018-11-06 00:58:59 +05:30
Harendra Kumar
628355fad6 Improve benchmarking of base streams
1) Fix options parsing in charting program
2) Add a group-diff options to compare StreamD/K
3) Add more benchmarks to StreamD/K
2018-11-05 20:34:20 +05:30
Harendra Kumar
58e81952e3 Add pull request checklists 2018-11-05 16:37:46 +05:30
Harendra Kumar
bb56f1757e refactor stream level combinators in another module 2018-11-05 16:34:40 +05:30
Harendra Kumar
c8ae480511
Merge pull request #115 from Abhiroop/skip
Add a skip constructor to the stream type
2018-11-05 05:34:02 +05:30
Abhiroop Sarkar
81cf15b9f6 Add Skip constructor to the core Stream type to enhance stream fusion
Introduce the skip constructor and fix the simpler warnings with some slight refactorings.

Add alternate definitions of filtering operations.

Revert `all` to the original definition

1. Implement the fromStreamK and zipWithM methods
2. Uncomment the linear benchmarks

Cleanup and add some stylistic changes

Add alternate implementation of drop function
2018-11-02 22:04:07 +05:30
Harendra Kumar
c7666a7caa
Merge pull request #112 from mgsloan/documentation-adjustments
Documentation adjustments
2018-11-02 03:01:17 +05:30
Michael Sloan
c0bcda8c12 Spelling fixes + other misc tutorial adjustments 2018-11-01 14:26:43 -07:00
Harendra Kumar
64ddfd8bcc describe all labels in a separate section 2018-10-31 20:14:55 +05:30
Harendra Kumar
c8aaba38cb Add dropWhileFalse/dropOne
Also, disable monadic versions of drop/take.  Pure versions use the monadic
ones internally so the monadic benchmarks are redundant unless we change the
implementations in future.
2018-10-31 16:50:00 +05:30
Harendra Kumar
3524799d3d Sort on time taken in solo reports
Sorting allows us to immediately identify the ops with worst timings to be
picked up for improvement.
2018-10-31 16:47:16 +05:30
Harendra Kumar
ab1d6f388a use bench-show-0.2.2 2018-10-31 14:44:37 +05:30
Harendra Kumar
114ab1f8cf fix some hlint warnings 2018-10-31 01:53:19 +05:30
Harendra Kumar
e3f9f255da update changelog 2018-10-31 01:14:02 +05:30
Harendra Kumar
b4f9c6912e Add benchmarks iterating the same op multiple times 2018-10-31 01:14:02 +05:30
Harendra Kumar
fcaf8bb7fa INLINE cons and scanlM' 2018-10-30 06:35:54 +05:30
Harendra Kumar
172efa6582 Add composed benches for streamd/k and compare them 2018-10-29 19:02:41 +05:30
Harendra Kumar
615197d1c5 split head and tail benchmarks from nullHeadTail 2018-10-29 13:19:59 +05:30
Harendra Kumar
829f929672 inline foldl1' 2018-10-29 05:04:33 +05:30
Harendra Kumar
23e2bdd13f disable building benchmarks for ghc-8.2.2 build
And avoid using 8.2.2 in other builds
2018-10-29 04:00:27 +05:30
Harendra Kumar
819786eca9 Add transformation/filtering/mixed composition benchmarks 2018-10-29 00:21:16 +05:30
Harendra Kumar
1ddd81b818 Use correct statistics pkg, fix graph option 2018-10-28 20:16:16 +05:30
Harendra Kumar
2bd1ada0b7 Remove incorrect help line 2018-10-28 01:50:34 +05:30
Harendra Kumar
0914c06330 Add comments to explain inlining/fusion/rewrite-rules 2018-10-28 01:49:44 +05:30
Harendra Kumar
06242af0df Add a README for benchmarks 2018-10-27 14:22:11 +05:30
Harendra Kumar
d9188336a3 Document "race" using exceptions 2018-10-27 01:17:56 +05:30
Harendra Kumar
a615989f94 Do not fully saturate the type synonyms
If we define type Serial a = SerialT IO a, then we cannot use Serial where we
need SerialT IO.
2018-10-27 00:27:19 +05:30
Harendra Kumar
30a1700237 Fix and update reference doc links 2018-10-27 00:04:55 +05:30
Harendra Kumar
a42e2239cd bump minor version 2018-10-26 20:35:09 +05:30
Harendra Kumar
165f2a23aa Add control-flow monad transformers' examples 2018-10-26 20:01:28 +05:30
Harendra Kumar
5cbcd5bd24 update README (exceptions), add doc on transformers 2018-10-26 17:12:14 +05:30
Harendra Kumar
dc7f419bb2 cleanup any pending threads on exception 2018-10-26 16:46:23 +05:30
Harendra Kumar
e810658dfe Fix monadic state capture and restore for concurrent tasks
This causes up to 30% regression in async stream generation benchmarks and up
to 200% regression in async nested benchmarks. Mostly, due to an additional
functional call that cannot be inlined.
2018-10-22 13:37:39 +05:30
Harendra Kumar
ba5a8c44b8 fix extra-deps in stack configs 2018-10-22 13:02:26 +05:30
Harendra Kumar
36229e1267 update gauge version 2018-10-21 20:23:51 +05:30
Harendra Kumar
354f7615fa lint free examples 2018-10-13 13:15:22 +05:30
Harendra Kumar
bf81f70a4e lint free tests 2018-10-13 10:36:06 +05:30
Harendra Kumar
bf39d27446 lint free benchmarks 2018-10-13 08:52:09 +05:30
Harendra Kumar
8b8fd22578 satisfy hlint (pragmas, imports, <> instead of ++) 2018-10-13 08:52:08 +05:30
Harendra Kumar
a0b1ac878e Fix building benchmarks during comparison
Add an "all" benchmarks option to run all benchmarks at once.
2018-10-13 06:29:06 +05:30
Harendra Kumar
3b80308e49 make output msgs more specific when comparing commits 2018-10-13 04:08:45 +05:30
Harendra Kumar
38aa5f2d0c Refactor code, add asserts, better test output 2018-10-13 04:05:01 +05:30
Harendra Kumar
1f72b61cee Add inspectMode combinator
inspectMode adds the ability to turn on diagnostics programmatically. Earlier
we had to use a different build for diagnostics. The perf impact is negligible,
and mostly on "maxBuffer 1" cases.
2018-10-12 18:41:39 +05:30
Harendra Kumar
0965e59b6b use bench-show for benchmark reporting 2018-10-11 14:49:16 +05:30
Harendra Kumar
acbfca3502 separate the rate benchmarks
rate benchmarks require longer time to run to provide stable results
2018-10-11 07:19:42 +05:30
Harendra Kumar
bdd8a4df50 sort on index 0 if column index 1 is not available 2018-10-10 12:39:27 +05:30
Harendra Kumar
a929a1682c add linear-async, base streams benchmark reporting
split linear to separate serial and parallel modules. Parallel modules use
lower number of elements in the stream so that they can run faster.
2018-10-10 12:39:27 +05:30
Harendra Kumar
54bb7ea8fd modularize benchmark charting code, use newer bench-graph 2018-10-10 12:39:27 +05:30