Skip to content

Commit c0e1da7

Browse files
committed
Add benchmarks to README.md
1 parent 875a1cb commit c0e1da7

File tree

1 file changed

+25
-7
lines changed

1 file changed

+25
-7
lines changed

README.md

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
11
# SimpleValueGraphs.jl
22

3-
[![version](https://juliahub.com/docs/SimpleValueGraphs/version.svg)](https://juliahub.com/ui/Packages/SimpleValueGraphs/aub6U)
43
![](https://img.shields.io/badge/lifecycle-maturing-blue.svg)
4+
[![version](https://juliahub.com/docs/SimpleValueGraphs/version.svg)](https://juliahub.com/ui/Packages/SimpleValueGraphs/aub6U)
55
[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://simonschoelly.github.io/SimpleValueGraphs.jl/stable)
66
[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://simonschoelly.github.io/SimpleValueGraphs.jl/dev)
7-
[![Build Status](https://travis-ci.com/simonschoelly/SimpleValueGraphs.jl.svg?branch=master)](https://travis-ci.com/simonschoelly/SimpleValueGraphs.jl)
87
![CI](https://github.com/simonschoelly/SimpleValueGraphs.jl/workflows/CI/badge.svg?branch=master)
98
[![codecov](https://codecov.io/gh/simonschoelly/SimpleValueGraphs.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/simonschoelly/SimpleValueGraphs.jl)
109
[![](https://img.shields.io/badge/chat-Zulip%23graphs-yellow)](https://julialang.zulipchat.com/#narrow/stream/228745-graphs)
1110

12-
This is a experimental package that uses the interface from [LightGraphs.jl](https://github.com/JuliaGraphs/LightGraphs.jl).
13-
It is similar to [MetaGraphs.jl](https://github.com/JuliaGraphs/MetaGraphs.jl) and [SimpleWeightedGraphs.jl](https://github.com/JuliaGraphs/SimpleWeightedGraphs.jl).
14-
It solves the following problem:
15-
- The topology of `MetaGraphs` can be changed fast, but changing and querying edge values is slow.
16-
- Changing the topology of `SimpleWeightedGraphs` is slow, but changing and querying edge values is fast.
11+
This is [LightGraphs.jl](https://github.com/JuliaGraphs/LightGraphs.jl) compatible package for graphs with multiple, homogeneous vertex and edge metadata. In particular it provides:
12+
- an abstract interface for graphs with metadata
13+
- concrete implementations of mutable graphs with metadata
14+
15+
Compared to [SimpleWeightedGraphs.jl](https://github.com/JuliaGraphs/SimpleWeightedGraphs.jl) it has the following advantages:
16+
- vertex metadata
17+
- multiple edge metadata
18+
- faster structural modifications of graphs
19+
20+
Compared to [MetaGraphs.jl](https://github.com/JuliaGraphs/MetaGraphs.jl) it has the following advantages:
21+
- faster access and modifications of metadata
22+
- better type stability when accessing metadata
1723

1824
## Example
1925

@@ -50,3 +56,15 @@ graphplot(gv;
5056
```
5157
![example output](https://github.com/simonschoelly/SimpleValueGraphs.jl/blob/master/docs/assets/readme-example-output.png)
5258

59+
## Benchmarks
60+
61+
This is a comparison of running `LightGraphs.dijkstra_shortest_paths` on the [egonets-Facebook](https://snap.stanford.edu/data/egonets-Facebook.html) graph for multiple graph types - one should note, that this function is not optimal when accessing the edge weights for most of these graph types, so in the future these benchmarks should be repeated with a more optimized function.
62+
63+
| graph type | time (ms) |
64+
| ------------------------------------------------- | --------- |
65+
| LightGraphs.SimpleGraph + Matrix weights | 5.1 |
66+
| LightGraphs.SimpleGraph + SparseMatrixCSC weights | 7.9 |
67+
| SimpleWeightedGraphs.SimpleWeightedGraph | 7.8 |
68+
| MetaGraphs.MetaGraph | 68.5 |
69+
| SimpleValueGraphs.ValGraph | 9.2 |
70+

0 commit comments

Comments
 (0)