-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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: