haskell-perf / graphs Goto Github PK
View Code? Open in Web Editor NEWLicense: BSD 3-Clause "New" or "Revised" License
License: BSD 3-Clause "New" or "Revised" License
dynamic-graphs is a new library for dynamic connectivity:
https://github.com/alang9/dynamic-graphs
https://hackage.haskell.org/package/dynamic-graphs
(introductory blogpost: https://jaspervdj.be/posts/2019-01-11-dynamic-graphs.html )
It would be interesting to compare the performance of the reachability query.
Hi. It seems like conversion to AIM and reachable
are both defined in the benchmark module instead of using the implementations in alga:
https://github.com/haskell-perf/graphs/blob/master/bench/Alga/Graph.hs
I think "space" and "data size" could use one more sentence to explain what they actually benchmark.
For example I would have expected space to measure maximum memory usage not allocations. Only after lookup up what weigh does it became clearer that it's about allocations.
Similar "data size" was not at all self explanatory to me (until looking up the package).
Otherwise great work and I will use this as another data point to benchmark my GHC changes!
@chrisdone Can you enable travis for this repo ?
I am not able to do it from my account...
Currently we test functions on common graphs (Path
, Circuit
,...). In real life, libraries are going to deal with more complex graph.
Can we extract a pattern and reproduce these "real life" graphs to benchmark functions on them ?
Thanks for this - graph library performance is definitely not obvious. Do you have any interest in additional graph libraries to examine? I was a bit frustrated with fgl performance a while ago and put together a library that I thought would address most of the problems I had with it. It might be of interest to you: https://github.com/travitch/haggle (unfortunately, not up on hackage yet).
It has:
Currently, a function like hasEdge
is tested with arguments from take 2 edgesNotInGraph
. But this take the two first edges not in the graphs, likely (0,0)
and (0,1)
. This is not a good thing, we want to test for edges everywhere and the graph.
How can we select them to have a representative population, and how many ?
It would be great to have a way to get runtime results as csv to feed it into scripts and whatnot.
It would be great if you could plot the results, rather than presenting tables of numbers. Thanks!
Ideally criterion < 1.5 and >= 1.5 should work.
But given the choice I would take >= 1.5 over <1.5.
Otherwise when testing against new versions of GHC it's easy to get locked into old packages via dependencies which are broken on the new release.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.