Commit Graph

359 Commits

Author SHA1 Message Date
Harendra Kumar
06b0cb1328 Implement IO write operations as folds. 2019-08-12 07:13:26 +05:30
Harendra Kumar
3d32be5acc Add array benchmarks to charting/comparisons 2019-08-12 07:13:26 +05:30
Harendra Kumar
1e6b3b6261 Expose hidden Prelude APIs via Streamly.Internal module 2019-08-07 03:44:02 +05:30
Harendra Kumar
27d7ea8f30 expose the experimental Fold APIs via internal module 2019-08-07 03:42:56 +05:30
Pranay Sashank
07e954820d Refactor readArraysOfUpto to readArraysOf in Socket, Handle, File.
- And also in examples, benchmarking code.
2019-08-07 00:22:26 +05:30
Pranay Sashank
bda6a6415b Refactor modules Mem.* ~> Memory.* and update references. 2019-08-06 04:31:23 +05:30
Harendra Kumar
2438be4259 rename the Mem.Array.Stream module to Mem.ArrayStream 2019-08-06 02:55:06 +05:30
Harendra Kumar
e621237b79 update documentation and rename toArray => write
rename toArray/toArrayN to writeF/writeNF to keep the API name consistent with
their regular counterparts. Now the only difference in fold APIs is a suffix F.
2019-08-06 02:28:14 +05:30
Harendra Kumar
a740d4dba9 move stream transformation operations to Prelude 2019-08-03 23:15:26 +05:30
Harendra Kumar
3cdecba40c Create a separate module for "Streams of Arrays" 2019-08-03 08:16:23 +05:30
Harendra Kumar
196b4de2ed hide benchmarks for hidden combinators 2019-08-03 05:16:59 +05:30
Pranay Sashank
f8afec67f4 Comment out benchmarking code for pipes ops. 2019-07-30 15:05:24 +05:30
Harendra Kumar
687fb9a283 Add "flatten" to StreamD as a faster alternative to concatMap 2019-07-28 06:43:51 +05:30
Harendra Kumar
8552589390 Add more concatMap benchmarks
* concat pure streams
* concat n x n
* use replicate with concatMap
2019-07-26 19:18:00 +05:30
Harendra Kumar
b67b840556 Add config options to run benchmarks quickly 2019-06-28 03:16:46 +05:30
Harendra Kumar
d6eb138165 Add concat/append benchmark for concurrent streams
Measure space usage in interesting cases.

The motivation for these benchmarks is parallel stream consuming a lot of stack
space in concatMap case. These benchmarks will hopefully catch any such
problems in future.

These benchmarks may take a lot of time to allow memory consumption to slowly
buildup to noticeable amount in case there is a problem. Therefore they are
enabled only in dev builds. We can use `--include-first-iter`, `--min-duration
0` options in gauge to run them in reasonable time. They need to be run with
`--measure-with` option to allow isolated runs, otherwise memory measurement
won't be correct.
2019-06-28 02:54:35 +05:30
Harendra Kumar
50170f39a5 Add fileio benchmark 2019-06-18 23:39:15 +05:30
Harendra Kumar
773f5a7c70 Fix a bug that caused reopening of the wrong file 2019-06-18 16:19:00 +05:30
Harendra Kumar
b846fd6a21 Allow older versions of deepseq
Otherwise cabal cannot find a build plan for older versions of GHC
2019-06-16 19:39:46 +05:30
Harendra Kumar
a8051edf7a Add cat and wc -l to benchmarks 2019-06-16 19:39:37 +05:30
Harendra Kumar
213ac6bc98 use the same test file for all benchmarks 2019-06-16 19:39:26 +05:30
Harendra Kumar
dbaacea1c6 implement fromStreamDArraysOf more efficiently
The implementation of fromStreamDArraysOf is now 3x more efficient compared to
the earlier implementation. This makes byte stream level operations almost as
efficient as array level operations.

Other than this the following changes are added in this commit:
* Add insertAfterEach
* Add writeArraysPackedUpto to Handle IO
* Implement `wc -l` example more efficiently using arrays
* Add benchmark for lines/unlines using arrays
* Add tests for splitArraysOn
* Rename some array/file/handle APIs
* Error handling when the group size in grouping operations is 0 or negative
2019-06-15 19:01:09 +05:30
Harendra Kumar
694eab4e6a Raw IO w/o buffering, add some array APIs
* Streamly.FileSystem.FD module for unbuffered IO. Buffering can be controlled
  from the stream itself.
* Support IO using writev as well

Array APIs include:

* coalesceChunksOf to coalesce smaller arrays in a stream into bigger ones
* unlinesArraysBy to join a stream of arrays using a line separator
* splitArraysOn to split a stream of arrays on a separator byte
2019-06-15 19:01:09 +05:30
Pranay Sashank
2255dacd3e Add benchmarking code for lines/unlines, decode/encode. 2019-06-12 10:38:55 +05:30
Pranay Sashank
d4bef2e352 Add intersperse to Streamly.Prelude.
- Also adds benchmarking code for intersperse.
2019-06-12 10:30:15 +05:30
Harendra Kumar
98d225672d Rename merge to tee 2019-06-07 09:34:23 +05:30
Harendra Kumar
517c3b7a23 Implement a 'Pipe' type 2019-06-07 09:34:23 +05:30
Pranay Sashank
218b48a1a3 Add benchmarks for fromIndices and fromIndicesM. 2019-06-01 22:00:04 +05:30
Harendra Kumar
606fe9de74 rename FileSystem.File module to FileSystem.Handle 2019-05-30 08:31:24 +05:30
Harendra Kumar
1949eb90af Concurrent concatMap, foldr/build fusion, benchmarks
* Implement a stream flavor specific (concurrent/wSerial etc.) concatMap
  (concatMapBy). Now concatMap has the same capabilities that the monad bind of
  different streams has. In fact the monad bind is implemented using concatMap

* Use foldr/build fusion for concatMap (currently disabled) and for map/fmap
  and mapM (enabled)

* Add benchmarks for bind/concatMap performance
2019-05-27 23:29:21 +05:30
Harendra Kumar
50232af000 rename/reorg/remove some fold APIs
rename groupsOf to chunksOf
remove grouped as it is just another version of splitSuffixBy'
reorganize sections
Add some docs/notes
2019-05-20 00:57:16 +05:30
Harendra Kumar
8bcbc77e62 rename Streamly.Array to Streamly.Mem.Array 2019-05-15 20:41:45 +05:30
Harendra Kumar
38c5c8872c Add File IO support 2019-05-15 17:54:12 +05:30
Harendra Kumar
7336d585a9 Fix a bug caused by unsafeInlineIO
unsafe use of unsafeInlineIO caused each array allocated in the toArrayN fold
to share the same memory.

This fix uses the IO monad to make sure that the code is not pure and therefore
we always allocate new memory. All such usage of unsafePerformIo have been
fixed. The remaining ones are reviewed to be safe.
2019-05-13 12:21:16 +05:30
Harendra Kumar
fd7bd713ec Add "Streamly.Fold" module 2019-05-13 12:21:16 +05:30
Harendra Kumar
36c4c4ca7b Add Streamly.Array module
* Supports fixed size immutable arrays
* See the module documentations for details.
2019-05-13 12:21:16 +05:30
Harendra Kumar
db2c560a65 add direct versions of monolithic scan/map and fold/map
After perf measurement these seems to perform the same as a scan followed by
map therefore we have not exposed these but kept for perf comparison and just
in case use.

* Deprecate `scanx`, `foldx`, `foldxM`
* Remove deprecated APIs `scan`, `foldl`, `foldlM`
2019-05-04 15:35:55 +05:30
Harendra Kumar
f1670f31ce Move some functions from Streamly to Streamly.Prelude
* `runStream`, `foldWith`, `foldMapWith`, `forEachWith` have been moved from
  "Streamly" module to "Streamly.Prelude" module.
2019-05-04 02:42:38 +05:30
Harendra Kumar
0ce4a6d5ad Fix right fold, document folds, add generic folds
* Fix the signature of foldrM
* Implement some custom folds in terms of foldr
* Document folds and scans better
* Reorganize the documentation in Prelude
* Add foldrS and foldrT for transforming folds
* add toRevList
* Add benchmarks and tests for the new folds
2019-05-03 16:46:43 +05:30
Harendra Kumar
7d577a469b Add detailed benchmarks for folds
INLINE foldlM'
2018-12-29 21:10:02 +05:30
Harendra Kumar
aaf8d2c45b Fixup after merge with master 2018-12-29 17:24:18 +05:30
Harendra Kumar
d08c057f8f Add Enumerable type class 2018-12-29 16:22:29 +05:30
Harendra Kumar
d01942d9dd Add applicative benchmarks
Specialize asyncly/wAsyncly/aheadly applicative instances
2018-12-29 15:23:47 +05:30
Harendra Kumar
ede29df8d0 specialize the typeclass instances to recover performance 2018-12-28 12:25:52 +05:30
Harendra Kumar
9c8a7504fa Add mapM_ benchmark, add build/augment 2018-12-27 13:59:25 +05:30
Harendra Kumar
a30ef3eef9 Add a nano benchmark for unfoldr, fix dev benchmarks 2018-12-27 00:52:33 +05:30
Harendra Kumar
dbc1956141 Review of #138 (Prelude functions) and other changes
APIs
----

Removed:
  merge
  lazy left scans: scanl, scanlM, scanl1, scanl1M

Renamed:
  generate and generateM renamed to fromIndices and fromIndicesM

Added:
  replicate
  mergeByM, mergeAsyncBy, mergeAsyncByM
  `intFrom`, `intFromTo`, `intFromThen`, `intFromThenTo`,
  `intFromStep`, `fracFrom`, `fracFromThen`, `fracFromThenTo`,
  `numFromStep`

Added StreamD version of replicateM and a rewrite rule for replicateMSerial.

Added but not exposed:
  postscanl and prescanl ops

Rewrote mergeByS in StreamK, simplified quite a bit and got some perf
improvement too.

Added @since notations to new APIs.

Fixed lines exceeding 80 columns.

Tests
-----

Added tests for the new enumeration APIs.
Improved some tests by generating values randomly using quickcheck forAll. We
can improve more tests similarly.

Removed some redundant transformOps tests.

reorganized test code in groups so as to keep similar functionality together
and added header lines so that we can find relevant code easily.

Benchmarks
----------

Added benchmarks for enumeration primitives added above. Added benchmarks for
scan and fold mixed ops. Added benchmark for concatMap. Fixed foldr and foldrM
benchmarks to use a (+) operation instead of a list operation for fair
comparision with other folds.

Kept only one benchmark each for deleteBy, insertBy, isPrefixOf and
isSubsequenceOf.

Documentation
-------------

Updated documentation, added examples for the new primitives as well as many
old ones. Especially the documentation of folds and scans was rewritten.

Reordered and re-organized the groups of APIs in the doc.

Refactoring
-----------

Some related and urelated refactoring.

Hlint
-----

Fixed some hlint hints introduced recently.

TBD
---

Some APIs need concurrent versions. I have added "XXX" notes for those.
Some more tests have to be added.
Some more benchmarks have to be added.
2018-12-09 19:39:37 +05:30
Pranay Sashank
de083af8e7 Group merging and subsequences benchmarks. 2018-11-22 10:17:15 +05:30
Pranay Sashank
dbcf5363e8 Add isPrefixOf, isSubsequenceOf, stripPrefix to Prelude, StreamD. 2018-11-22 10:03:00 +05:30
Pranay Sashank
55e582efaf INLINE insert and delete in benchmarks. 2018-11-22 10:02:04 +05:30
Pranay Sashank
acc38719fd Fixed insertBy to use correct state. Add deleteBy.
- Benchmarks show very poor performance of insertBy and
deleteBy compared to StreamK. Should be improved in StreamD.
2018-11-22 10:02:04 +05:30
Pranay Sashank
7f82af409c Add scanl1, scanl1M, scanl1', scanl1M', scanl, scanlM to StreamD. 2018-11-22 10:00:38 +05:30
Pranay Sashank
3186bd283f Add maximumBy and minimumBy. 2018-11-22 09:56:48 +05:30
Pranay Sashank
5cc6933cdb Add (!!), insertBy, merge, mergeBy, splitAt, the to Prelude.
1) Add foldr1, findIndices, lookup, find, sequence functions
in StreamD, earlier they were present only in StreamK.
2) Change the above functions to use S. in Prelude instead
of K. .
3) Add tests for (!!), insertBy, splitAt, the.
2018-11-22 09:53:40 +05:30
Harendra Kumar
6daacf0d49 Add foldl' benchmark for pure streams to cmp with Foldable 2018-11-19 12:44:53 +05:30
Harendra Kumar
11d8d6dc66 Fix foldable/traversable instances
1) Define the instances manually instead of deriving. Deriving picks up
incorrect implementations of methods that have been redefined in the newtypes.

2) Fix the Traversable instance.

3) Define the instances only for Serial stream types. Other streams cannot be
instantiated for Foldable monads.

4) Add test cases

5) add benchmarks
2018-11-19 12:13:33 +05:30
Harendra Kumar
c28043f48a Add pure stream (list) instances
Pure streams are streams with Identity as the base monad.
Added Eq/Ord/Read/Show/IsString/IsList instances for pure streams.
2018-11-16 14:39:26 +05:30
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
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
114ab1f8cf fix some hlint warnings 2018-10-31 01:53:19 +05:30
Harendra Kumar
b4f9c6912e Add benchmarks iterating the same op multiple times 2018-10-31 01:14:02 +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
819786eca9 Add transformation/filtering/mixed composition benchmarks 2018-10-29 00:21:16 +05:30
Harendra Kumar
06242af0df Add a README for benchmarks 2018-10-27 14:22:11 +05:30
Harendra Kumar
bf39d27446 lint free benchmarks 2018-10-13 08:52:09 +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
Harendra Kumar
b11c7cdc31 rearrange benchmarks for aheadly 2018-09-07 08:38:18 +05:30
Harendra Kumar
3b1f3dd5a8 Add bench group for rate benchmarks 2018-08-25 08:48:22 +05:30
Harendra Kumar
482b971ebb make custom rate combinators functions
instead of constructors
2018-08-25 04:51:00 +05:30
Harendra Kumar
4a546a8aec Fix the min/max limit, swapped them
Also some refactoring/cleanup
2018-08-24 01:29:39 +05:30
Harendra Kumar
f09e741e04 Add benchmarks for maxRate, maxThreads and maxBuffer 2018-08-12 18:20:03 +05:30
Harendra Kumar
c39a442ddf Add benchmarks and tests for new operations
Also fix the signature of foldl1'
Add notes about state passing
2018-08-09 00:43:48 +05:30
Harendra Kumar
6ab3ce0655 disable map-and-filter composition benchmarks for GHC-8.2
GHC-8.2 crashes with this code with out-of-memory
2018-07-14 13:10:09 +05:30
Harendra Kumar
ec0868181c update base stream benchmarks 2018-07-14 13:10:09 +05:30
Harendra Kumar
55f9cfa371 fix foldxM strictness
The main change is a single line change in StreamK.hs in foldxM routine.

Major changes in this commit are due to:
1) Added strictness tests for all foldl and scanl rotuines
2) refactoring to enable independent benchmarking for StreamK, to measure the
  impact of the change.
2018-07-13 19:00:38 +05:30
Harendra Kumar
9fe6dc1726 use direct style zipWith and zipWithM 2018-06-27 09:10:39 +05:30
Harendra Kumar
6530e7634f push uncons/null/head/tail to StreamK
and implement direct versions of these as well.
2018-06-27 05:20:14 +05:30
Harendra Kumar
9b78a64f80 implement elem/notElem/all/any for StreamD 2018-06-27 01:04:26 +05:30
Harendra Kumar
c7d2f9e0a3 Add flag to switch stream backend to streamk 2018-06-26 09:44:06 +05:30
Harendra Kumar
beba8f7919 Use direct style filtering functions
Also, organized a lot of code, by reordering in a more logical order and made
it consistent across multiple streams types.
2018-06-26 06:00:47 +05:30
Harendra Kumar
d0a07bb70e update benchmarks for streamD/K 2018-06-25 05:45:45 +05:30
Harendra Kumar
5ace3582a8 use foldl' for length, sum, product 2018-06-25 03:51:02 +05:30
Harendra Kumar
de5c0ca22e use direct style scan, push mapMaybe from prelude to StreamK 2018-06-25 03:15:22 +05:30
Harendra Kumar
3ae953064d use folds and map from direct style stream 2018-06-24 22:43:30 +05:30
Harendra Kumar
7a526f22b9 use direct style streams for linear composition
For some stream generation APIs.
Also added, fromList/fromListM APIs.
2018-06-24 06:19:41 +05:30
Harendra Kumar
9bb5ac1ea2 Add dev benchmarks for base cont and direct streams 2018-06-23 20:57:24 +05:30
Harendra Kumar
9c85811905 rename "once" to "yieldM"
and some other related refactoring changes.
2018-06-23 06:50:59 +05:30
Harendra Kumar
42e5c6bd93 INLINE the main benchmark function
makes a big difference especially when the times are small.
2018-06-20 04:49:00 +05:30
Harendra Kumar
b77e76fd53 Add/rearrange INLINE pragmas on benchmarks 2018-06-18 02:56:52 +05:30
Harendra Kumar
b9e5e424a7 remove the append benchmark
it is already covered by the generation benchmarks
2018-06-13 17:46:54 +05:30
Harendra Kumar
aa4c8707b5 add more benchmarks, update benchmarks 2018-06-09 21:11:15 +05:30
Harendra Kumar
1d13085fb2 Exit and restart workers instead of making them wait 2018-06-03 00:28:14 +05:30
Harendra Kumar
c9fdf949ee Add more diagnostics to study the adaptation 2018-06-03 00:28:14 +05:30
Harendra Kumar
12bca7832a Add benchmarks for adaptive concurrency 2018-06-03 00:28:14 +05:30
Harendra Kumar
decdf72e3a use lower number of elements in benchmark stream
To enable parallel benchmarks
2018-06-03 00:28:14 +05:30
Harendra Kumar
2f706b9bfb add concurrent stream generation benchmarks 2018-05-28 11:35:33 +05:30
Harendra Kumar
669295965a Add some INLINABLE pragams 2018-05-27 10:33:21 +05:30
Harendra Kumar
9cb2ac0bb7 Add concurrent generation and transformation capabilities
- monadic stream generation functions are now concurrent
- monadic stream transformation (mapM, sequence) functions are now concurrent
- fixed a race which caused blockedindefinitely on MVar in rare cases
2018-05-24 16:48:48 +05:30
Harendra Kumar
3b6427818f Add fromFoldableM
Also,

- INLINE consM and once
- add benchmarking for various ways of sourcing (unfoldr(M), fromFoldable(M),
  foldMapWith serial)
2018-05-21 17:54:19 +05:30
Harendra Kumar
9da3fccd20 Add concurrent lookahead stream type "Ahead" 2018-05-17 11:22:29 +05:30
Harendra Kumar
2fb74c756f Fix benchmark charting 2018-05-13 11:58:09 +05:30
Harendra Kumar
c8b32f2a53 Fix naming changes in benchmarks 2018-05-13 10:27:49 +05:30
Harendra Kumar
091f4b69fe Add the strictly parallel stream type ParallelT 2018-05-08 07:49:43 +05:30
Harendra Kumar
74dd5a01b6 rename streams with a consistent and intuitive scheme
The trigger for this change is that parallel stream is not really parallel it is
a concurrent lookahead like just in a different traversal style. So we make
parallel and coparallel as parAhead and coparAhead instead and later introduce
a new style for parallel which would be strictly parallel with one thread for
each stream started right away rather than speculatively.
2018-05-07 19:17:02 +05:30
Harendra Kumar
cf1388b330 Add append benchmark to linear benchmarks 2018-05-06 05:13:10 +05:30
Harendra Kumar
4b5abb0915 fix benchmark comparison graphs
Generate graphs for both linear and nested benchmark ops
2018-04-25 14:21:02 +05:30
Harendra Kumar
a526207acd rename the default stream type to StreamT
This was earlier changed from StreamT to SerialT. However we have made this the
default type now and it makes more sense to call it StreamT now. A bigger
motivation for the change is that StreamT immediately conveys that it is a
stream which is helpful and intuitive for new learners. Also we have a plan to
have a specialized type called "Stream a = StreamT IO a", so the name StreamT
is in line with that common default type "Stream a". Calling that type as
"Serial a" does not sound as intuitive as calling it "Stream a".
2018-04-25 11:31:12 +05:30
Harendra Kumar
ac39277da8 Rename benchmark modules 2018-04-25 11:28:47 +05:30
Harendra Kumar
e223cfade7 Remove old, now redundant, benchmarks 2018-04-25 11:28:47 +05:30
Harendra Kumar
d2c4df460f Add microbenchmarks for list-transformer ops 2018-04-25 11:28:47 +05:30
Harendra Kumar
30a6e32fee Fix Monoid and other instances
Monoid instances should not be derived from underlying type where we want them
to be type specific. Added tests to make sure they are correct.

Other typeclass instances that are dependent on type specific behavior should
also be independently defined rather than derived.

Removed Alternative instances as they are not correct yet.

Removed redundancy by using CPP macros to define instances of different types.
2018-04-22 15:59:09 +05:30
Harendra Kumar
acd550c731 rename InterleavedT=>CoserialT, AParallelT=>CoparallelT 2018-04-18 17:32:25 +05:30
Harendra Kumar
3f638d9b6d rename interleave=>coserial, aparallel=>coparallel 2018-04-18 16:55:16 +05:30
Harendra Kumar
7e4fde1780 Fix benchmarks 2018-04-18 15:26:15 +05:30
Harendra Kumar
3d920ef3f8 rename AsyncT to AParallelT
Also rename asyncly to aparallely and runAsyncT to runAParallelT

The name Async is confusing and does not convey the right meaning. The 'A' in
AParallelT stands for 'Adaptive' and 'Parallel' indicates that this is a
variant of Parallel.

Another choice for the name was 'MParallelT' where 'M' stands for 'maybe', it
is maybe parallel since it may or may not start parallel threads depending on
demand but Adaptive fits better as it adapts to the demand.
2018-04-17 18:03:27 +05:30
Harendra Kumar
583a48c490 use new names for deprecated functions 2018-04-17 10:07:52 +05:30
Harendra Kumar
6e32a15788 rename each to fromFoldable
fixes #14
2018-04-15 21:10:16 +05:30
Harendra Kumar
a34b1f31ad rename fold functions to make them consistent with base/Foldable 2018-04-15 19:39:43 +05:30
Harendra Kumar
408fef1c73 rename Streaming to IsStream and runStreaming to runStream
fixes #52
2018-04-15 15:08:11 +05:30
Harendra Kumar
5c5b2b3ed8 rename all references to StreamT to SerialT 2018-04-15 15:05:59 +05:30
Harendra Kumar
9c35804edc ignore and continue when graph generation fails 2018-04-10 16:16:59 +05:30
Harendra Kumar
62ba37b724 Use bench-graph to generate perf comparison charts 2018-04-10 13:43:33 +05:30
Harendra Kumar
a445ef9873 Add benchmarks for streaming operations 2018-04-09 20:32:49 +05:30
Harendra Kumar
458f81849f Use gauge in place of criterion 2018-03-28 01:48:04 +05:30
Harendra Kumar
a74a0c0844 Rename to Streamly
Streamly is a more appropriate name and conveys the core idea. Stream
concurrently = streamly.
2017-11-20 18:03:13 +05:30
Harendra Kumar
992195e20d Add bind style benchmark for simple-conduit 2017-10-31 17:48:28 +05:30
Harendra Kumar
9588d8f73e Add benchmark for function style composition 2017-10-31 15:47:47 +05:30
Harendra Kumar
a7b20ad4dc Simlify streaming type class
Use polymorphic functions instead of bunching up all streaming functions in the
type class.
2017-10-25 14:00:22 +05:30
Harendra Kumar
29f64fe8d1 Separate types for different styles of product composition 2017-10-25 08:01:29 +05:30
Harendra Kumar
3d171045de Move APIs conflicting with Prelude to Prelude module 2017-10-18 08:46:18 +05:30
Harendra Kumar
b2ba739bcc Fix parallel binds, pass the context where needed 2017-09-22 10:33:14 +05:30
Harendra Kumar
9dc19351df A small performance tweak for the benchmark 2017-09-12 20:15:55 +05:30
Harendra Kumar
0dffdd7f25 Add fair bind benchmarks 2017-09-08 22:40:53 +05:30
Harendra Kumar
8213fe2d3e Use native drop combinator for Asyncly benchmark 2017-09-06 09:28:25 +05:30
Harendra Kumar
53b8da31af Move additional benchmarks under a build flag 2017-09-06 08:56:00 +05:30
Harendra Kumar
b64959290f Fix build/travis config for ghc 7.10.3 2017-09-05 15:18:49 +05:30
Harendra Kumar
e423770f5f Add simple conduit 2017-09-05 12:01:00 +05:30
Harendra Kumar
150184288d add nil (tiniest possible) task benchmarks 2017-09-01 10:58:55 +05:30
Harendra Kumar
ff84127946 Fix benchmarks and package deps 2017-08-31 06:11:46 +05:30
Harendra Kumar
62bca27864 Gain some perf by moving code out of fast path 2017-08-30 03:10:53 +05:30
Harendra Kumar
5cdbf1911e add logict to benchmarks 2017-08-28 14:15:45 +05:30
Harendra Kumar
4e26aa558b Remove stale code, rename the type to AsyncT 2017-08-28 08:05:49 +05:30
Harendra Kumar
5181c0d15f Fix warning in benchmark 2017-08-24 03:49:32 +05:30
Harendra Kumar
9b2ca30312 Add the "for" parallel API and change "each" to serial 2017-08-17 04:42:45 +05:30
Harendra Kumar
6935930cae Add list-t to benchmarks 2017-08-10 15:25:28 +05:30
Harendra Kumar
17b30bafb7 rename the runner APIs 2017-08-09 17:30:33 +05:30
Harendra Kumar
99d9ba6c07 Fix the composite benchmark code 2017-08-08 20:37:11 +05:30
Harendra Kumar
cc4743cb5f Add machine benchmark and fix others 2017-08-04 13:30:40 +05:30
Harendra Kumar
5457bbd10f Add asyncly to benchmarks 2017-07-19 08:10:56 +05:30
Harendra Kumar
b1068152b7 Add benchmarks including transient 2017-07-17 21:28:04 +05:30