-
Notifications
You must be signed in to change notification settings - Fork 2
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
Interest in other graph libraries #6
Comments
Yes of course, thanks for the link ! The approach is very interesting, I will add benchs for haggle asap :) |
@travitch I just spent some time trying to add your library. Some questions, to ensure that I don't miss anything:
mkGraph e = let maxV = extractMaxVertex e
in do
g <- newSizedMSimpleBiDigraph maxV undefined
vert <- replicateM maxV (addVertex g)
mapM_ (\(u,v) -> addEdge g (vert !! u)(vert !! v)) e
return g where Is it ok ? |
Thanks for taking a look at it!
|
Thanks for the work :) I started mine here: https://github.com/haskell-perf/graphs/tree/haggle (no many things are benchmarked, I will dig deeper inside the API soon). I think the more valuable is I am just stuck with a thing: How can I bench a graph modification, since it is encapsulated inside a |
If you are running in the For the |
If we are sure that everything is evaluated, as you are saying, then the The problem of |
So I have do some work. Criterion provide a function to benchmark a IO action (here it apply for mutable graphs). The only problem is that it will benchmark the whole action. So I need to benchmark the creation itself with the "action" (like Fortunately, I have implemented it for others libraries, so we can compare :) I think my function to build a graph from a list of edges is very poor. Here are the results: Doing: Using [("Mesh",3),("Clique",3)] as graphs edgeCountDescription: Count the edges of the graph Mesh
Clique
SUMMARY:
ABSTRACT:
vertexCountDescription: Count the vertices of the graph Mesh
Clique
SUMMARY:
There was 2 ex-aequo ABSTRACT:
addEdgeDescription: Add an edge (not already in the graph) Mesh
Clique
SUMMARY:
ABSTRACT:
So I think my function is so poor that it kills the results... |
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:
The text was updated successfully, but these errors were encountered: