-
Notifications
You must be signed in to change notification settings - Fork 12
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
Benchmarks and core inspections need to be made #22
Comments
I'm personally a little bit sus about all the closures being used and such. |
Just so other people now, right now most of my optimization work is being poured into
I'm actually planning on going one step further and replacing the use of
Here's an example of what code written using zip :: Monad m => List (Of a) m r -> List (Of b) m r -> List (Of (a, b)) m r
zip l1 l2 = case l1 of
Nil r -> Nil r
Impure io -> Impure (liftM (`zip` l2) io)
Cons (a `Onto` l1') -> zipR l2
where
zipR l2 = case l2 of
Nil r -> Nil r
Impure io -> Impure (liftM zipR io)
Cons (b `Onto` l2') -> Cons ((a, b) `Onto` zip l1' l2') There would be an isomorphism from Note that the reason I'm switching to |
Also, the use of closures is primarily for two reasons:
|
Cheers! When I was talking about closures I was more talking about being sus about the dispatch performance for read/write for pipes-concurrency, since they use PAPs heavily. Keep up the good work. |
If you want to know where might be room for performance improvement, I can think of three main areas:
|
There's a lot of new exciting things being added in at the moment, which will make this library the BEST way to setup a server so far!
When development settles down and the API becomes concrete, to complement the excellent performance of pipes, this library should be benchmarked/micro-optimised and profiled to make sure it's server-ready (and catch deadlocks or loopholes that may have been missed in the process).
This is a ticket to hold performance notes and ideas.
The text was updated successfully, but these errors were encountered: