{"id":20618285,"url":"https://github.com/tddschn/easygraph-bench","last_synced_at":"2026-02-11T23:13:13.776Z","repository":{"id":52111954,"uuid":"519954763","full_name":"tddschn/easygraph-bench","owner":"tddschn","description":"Benchmarking code and results of easygraph (Python / C++) and networkx","archived":false,"fork":false,"pushed_at":"2024-09-03T22:14:50.000Z","size":69776,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-17T17:23:20.249Z","etag":null,"topics":["benchmark","easygraph","networkx","python"],"latest_commit_sha":null,"homepage":"https://github.com/tddschn/easygraph-bench","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tddschn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-08-01T03:46:30.000Z","updated_at":"2023-05-04T11:52:58.000Z","dependencies_parsed_at":"2025-04-15T11:49:21.892Z","dependency_job_id":null,"html_url":"https://github.com/tddschn/easygraph-bench","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/tddschn/easygraph-bench","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tddschn%2Feasygraph-bench","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tddschn%2Feasygraph-bench/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tddschn%2Feasygraph-bench/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tddschn%2Feasygraph-bench/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tddschn","download_url":"https://codeload.github.com/tddschn/easygraph-bench/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tddschn%2Feasygraph-bench/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265786117,"owners_count":23828211,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmark","easygraph","networkx","python"],"created_at":"2024-11-16T12:07:48.179Z","updated_at":"2026-02-11T23:13:08.752Z","avatar_url":"https://github.com/tddschn.png","language":"Jupyter Notebook","readme":"---\ntitle: Easygraph Bench\nemoji: 📉\ncolorFrom: yellow\ncolorTo: indigo\nsdk: gradio\nsdk_version: 3.23.0\napp_file: app.py\npinned: false\n---\n# easygraph-bench\n\n[![Benchmark using all datasets](https://github.com/tddschn/easygraph-bench/actions/workflows/bench-all.yaml/badge.svg)](https://github.com/tddschn/easygraph-bench/actions/workflows/bench-all.yaml)\n\nThis repository includes code for benchmarking the performance of graph libraries including easygraph.\n\n\n- [easygraph-bench](#easygraph-bench)\n  - [Objectives](#objectives)\n    - [Objective 1](#objective-1)\n    - [Objective 2](#objective-2)\n  - [Benchmarking method](#benchmarking-method)\n  - [Benchmarked methods](#benchmarked-methods)\n    - [For Objective 1](#for-objective-1)\n    - [For Objective 2](#for-objective-2)\n  - [Run](#run)\n    - [Run locally](#run-locally)\n      - [Prerequisites](#prerequisites)\n      - [For Objective 1](#for-objective-1-1)\n      - [For Objective 2](#for-objective-2-1)\n      - [Scripts usage](#scripts-usage)\n    - [Run on GitHub Actions (for Objective 1 only)](#run-on-github-actions-for-objective-1-only)\n  - [Result visualization (for Objective 1 only)](#result-visualization-for-objective-1-only)\n  - [Datasets](#datasets)\n    - [Bench results REST API](#bench-results-rest-api)\n    - [Results downloads](#results-downloads)\n  - [FAQ](#faq)\n    - [How do I use your benchmarking code on other datasets?](#how-do-i-use-your-benchmarking-code-on-other-datasets)\n\n## Objectives\n### Objective 1\nBenchmarking code that compares the performance of the 2 graph libraries [easygraph](https://github.com/easy-graph/Easy-Graph) (with and without C++ binding) and [networkx](https://networkx.org).\n\n### Objective 2\nBenchmarking code that compares the performance of 6 graph libraries  \n`easygraph`, `networkx`, `igraph`, `graphtool`, `networkit`, `snap-stanford`.  \non these methods `loading`, `2-hops`, `shortest path`, `k-core`, `page rank`, `strongly connected components`.\n\n## Benchmarking method\n\n[timeit.Timer.autorange](https://docs.python.org/3.10/library/timeit.html#timeit.Timer.autorange) is used to run the specified methods on the graph objects.\n\nIf the method returns a Generator, the result will be exhausted.\n\nSee [get_Timer_args()](https://github.com/tddschn/easygraph-bench/blob/69cc89889e39386f495b7fa07be3116443cc9356/utils.py#L191) for more details.\n \n## Benchmarked methods\n\n### For Objective 1\n\nSee [config.py](./config.py) for more details.\n\n- clustering_methods: `[\"average_clustering\", \"clustering\"]`  \n    (`eg.average_clustering` vs `nx.average_clustering`, ...)\n- shortest_path_methods: `[('Dijkstra', 'single_source_dijkstra_path')]`  \n    (`eg.Dijkstra` vs `nx.single_source_dijkstra_path`)\n\u003c!-- - connected_components_methods: `[ \"is_connected\", \"number_connected_components\", \"connected_components\", (\"connected_component_of_node\", 'node_connected_component'), ]` --\u003e\n- connected_components_methods: `[\"is_biconnected\", \"biconnected_components\"]`\n- mst_methods: `['minimum_spanning_tree']`  \n    C++ binding not supported for this method yet.\n- other_methods: `['density', 'constraint']`.\n\n### For Objective 2\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick to expand\u003c/summary\u003e\n\n\n  Source: [graph-benchmark-code.yaml](timlrx/graph-benchmark-code.yaml)\n\n  The data (except the easygraph related part) is this yaml file is extracted from `timlrx`'s [graph-benchmark](https://github.com/timlrx/graph-benchmark) repository with `semgrep`.\n\n  See the [timlrx](./timlrx/) directory for more details.\n  \n  ```yaml\n\n  easygraph:\n    loading: '''read_edgelist(filename, delimiter=\"\\t\", nodetype=int, create_using=eg.DiGraph()).cpp()'''\n    loading_undirected: '''read_edgelist(filename, delimiter=\"\\t\", nodetype=int, create_using=eg.Graph()).cpp()'''\n    # page rank: \"'pagerank(g)'\"\n    shortest path: f'Dijkstra(g, {nodeid})'\n    strongly connected components: \"'[i for i in strongly_connected_components(g)]'\"\n    graphtool:\n    2-hops: '\"shortest_distance(g, g.vertex(0), max_dist=2).a\"'\n    k-core: \"'kcore_decomposition(g).a'\"\n    loading:\n        '''''''load_graph_from_csv(filename, directed=True, csv_options={''delimiter'':\n        ''\\t'', ''quotechar'': ''\"''})'''''''\n    loading_undirected:\n        '''''''load_graph_from_csv(filename, directed=False, csv_options={''delimiter'':\n        ''\\t'', ''quotechar'': ''\"''})'''''''\n    page rank: \"'pagerank(g, damping=0.85, epsilon=1e-3, max_iter=10000000).a'\"\n    shortest path: '\"shortest_distance(g, g.vertex(0)).a\"'\n    strongly connected components:\n        \"'cc, _ = label_components(g, vprop=None, directed=True,\n        attractors=False); cc.a'\"\n    igraph:\n    k-core: '\"g.coreness(mode=''all'')\"'\n    loading: '\"Graph.Read(filename, format=''edges'')\"'\n    loading_undirected: '\"Graph.Read(filename, format=''edges'', directed=False)\"'\n    page rank: '\"g.pagerank(damping=0.85)\"'\n    shortest path: '\"g.shortest_paths([g.vs[0]])\"'\n    strongly connected components: '\"[i for i in g.components(mode=STRONG)]\"'\n    networkit:\n    k-core: '\"nk.centrality.CoreDecomposition(g).run().scores()\"'\n    loading:\n        '\"nk.graphio.EdgeListReader(separator=''\\t'', firstNode=0, continuous=True,\n        directed =True).read(filename)\"'\n    loading_undirected: '\"nk.graphio.EdgeListReader(separator=''\\t'', firstNode=0, continuous=True).read(filename)\"'\n    page rank: '\"nk.centrality.PageRank(g, damp=0.85, tol=1e-3).run().scores()\"'\n    shortest path: '\"nk.distance.BFS(g, 0, storePaths=False).run().getDistances(False)\"'\n    strongly connected components: '\"nk.components.StronglyConnectedComponents(g).run().getPartition().getVector()\"'\n    networkx:\n    2-hops: f'single_source_shortest_path_length(g, {nodeid}, cutoff=2)'\n    k-core: \"'core.core_number(g)'\"\n    loading: '''read_edgelist(filename, delimiter=\"\\t\", nodetype=int, create_using=nx.DiGraph())'''\n    loading_undirected: '''read_edgelist(filename, delimiter=\"\\t\", nodetype=int, create_using=nx.Graph())'''\n    page rank: \"'pagerank(g, alpha=0.85, tol=1e-3, max_iter=10000000)'\"\n    shortest path: f'shortest_path_length(g, {nodeid})'\n    strongly connected components: \"'[i for i in strongly_connected_components(g)]'\"\n    snap:\n    2-hops: '\"snap.GetNodesAtHop(g, 0, 2, NodeVec, True)\"'\n    k-core: '\"snap.GetKCoreNodes(g, CoreIDSzV)\"'\n    loading: '\"snap.LoadEdgeListStr(snap.PNGraph, filename, 0, 1)\"'\n    page rank: '\"snap.GetPageRank(g, PRankH, 0.85, 1e-3, 10000000)\"'\n    shortest path: '\"snap.GetShortPath(g, 0, NIdToDistH, True)\"'\n    strongly connected components: '\"snap.GetSccs(g, Components)\"'\n    \n```\n\n\n\u003c/details\u003e\n\n\n## Run\n\n### Run locally\n\n#### Prerequisites\n\n`python \u003e= 3.10` is required.\n\nFirst, you need to download datasets manually or with a script like [this one](./scripts/download_data.sh).\n\nTo run these scripts, you need to clone the repo and install the dependencies listed in requirements.txt.\n\nTo install `easygraph`:  \nAs of 8/6/2022, wheel for `python-easygraph` is not available on PyPI, and you need to build it yourself and install the module by running the following code.\n\n```bash\ngit clone https://github.com/easy-graph/Easy-Graph \u0026\u0026 cd Easy-Graph \u0026\u0026 git checkout pybind11\npip install pybind11\npython3 setup.py install\n```\n\nTo install other 5 graph libraries on conda, run\n\n```bash\nconda install -c conda-forge python-igraph graph-tool networkit snap-stanford -y\npython3 -m pip install networkx\n```\n\n\n\u003c!-- For macOS users, you may try the following snippet to do that:\n\n```bash\ngit clone https://github.com/easy-graph/Easy-Graph \u0026\u0026 cd Easy-Graph\nbrew install boost --build-from-source\nbrew install boost-python\n\n[ -d 'build'] \u0026\u0026 rm -rf build/\n\n# modify line below based on your machine configuration, don't copy and run verbatim!\n# you may also need to install clang or clang++ if you haven't already.\npython3 setup.py build_ext -l boost_python310 -L \"/usr/local/Cellar/boost-python3/1.79.0/lib\" -I \"/usr/local/Cellar/boost/1.79.0/include\"\n\npython3 setup.py install\n``` --\u003e\n\n#### For Objective 1\n\nYou can run benchmarking on a single dataset with the `./bench_*.py` scripts,  \nor run benchmarking on a set of datasets with the `./entrypoint_*.py` scripts,\nor run all of them `./bench.sh`.\n\n\u003c!-- - Run benchmarks on a single dataset  \n    You can choose what method category to benchmark via `-G`. See [Scripts usage](#scripts-usage).\n    - [./bench_cheminformatics.py](./bench_cheminformatics.py): Run benchmarks on the cheminfomatics dataset\n    - [./bench_bio.py](./bench_bio.py): Run benchmarks on the bio dataset\n    - [./bench_eco.py](./bench_eco.py): Run benchmarks on the eco dataset\n    - [./bench_soc.py](./bench_soc.py): Run benchmarks on the soc dataset (WIP)\n- Run benchmarks on all datasets  \n    - [./bench.py](./bench.py): Run benchmarks on all datasets  \n        You can choose what method category to benchmark via `-G`. See [Scripts usage](#scripts-usage).\n- Deprecated  \n    - [./archive/bench.py](./archive/bench.py):  \n    Deprecated, modified and parameterized from [@coreturn](https://github.com/coreturn)'s benchmarking script.  \n    Only run the methods once with and record the difference of the result of `time.time()` calls as the time spent.  \n    Use the following scripts instead. --\u003e\n\n#### For Objective 2\n\nYou can run benchmarking on a single dataset for a single library with the `./profile_*.py` scripts, or use the convenience script `./profile_entrypoint.sh` to profile a bunch of datasets for the 6 libraries (you may need to adjust the dataset locations for this script to work).\n\n```bash\n# Download datasets\ncp scripts/download_data.sh . \u0026\u0026 bash download_data.sh\n\n# Get LCC datasets from the downloaded datasets\n./get_lcc_edgelist.py\n\n# Generate the scripts, only bench what you want to bench\ngen-scripts-20230328-directed-only:\n\t./gen_profile_scripts_with_suffix_wrapper.py '20230328-pagerank-scc-directed-only' --tools 'igraph' 'easygraph' --methods 'page rank' 'strongly connected components' --directed-datasets-only\n```\n\n#### Scripts usage\n\n```\n# For Objective 1\n# the ./bench_*.py scripts are for benchmarking easygraph and networkx on a single or all datasets\n\n$ ./bench_cheminfo.py --help\n\nENZYMES_g1: nodes: 37 edges: 84\nusage: bench_cheminfo.py [-h] [-G {clustering,shortest-path,connected-components,mst} [{clustering,shortest-path,connected-components,mst} ...]] [-C]\n\nEasyGraph \u0026 NetworkX side-by-side benchmarking\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -G {clustering,shortest-path,connected-components,mst} [{clustering,shortest-path,connected-components,mst} ...], --method-group {clustering,shortest-path,connected-components,mst} [{clustering,shortest-path,connected-components,mst} ...]\n  -C, --skip-cpp-easygraph, --skip-ceg\n                        Skip benchmarking cpp_easygraph methods (default: False)\n```\n\n```\n# for Objective 2\n# the ./profile_*.py scripts are for profiling the one graph library on dataset of your choice.\n\n# examples:\n# ./profile_igraph.py my_dataset/my_network.edgelist -n 1000\n# run the benchmarked methods of igraph on my_network.edgelist dataset for 1000 times, the dataset will be read as a directed graph.\n# ./profile_networkx_undirected.py bio.edgelist\n# read bio.edgelist as an undirected graph.\n\n$ ./profile_easygraph.py D\nusage: profile_easygraph.py [-h] [-n INT] PATH\n\nBenchmark easygraph\n\npositional arguments:\n  PATH                  path to the dataset file in tab-separated edgelist format\n\noptions:\n  -h, --help            show this help message and exit\n  -n INT, --iteration INT\n                        iteration count when benchmarking, auto-determined if unspecified (default: None)\n```\n\n\u003c!-- #### Run on a custom dataset\n\nSee [./bench_cheminfo.py](./bench_cheminfo.py).\n\nModify the dataset loading function `load_cheminformatics` to load your own dataset. --\u003e\n\n### Run on GitHub Actions (for Objective 1 only)\n\nFork this repo, go to the Actions tab and click Run Workflow.\n\n## Result visualization (for Objective 1 only)\n\n`timeit` results are saved in csv files, and `seaborn` is used to render and save the figures in the `images/` directory.\n\nImage generation is slow, use `-D` or `--skip-draw` when running `./bench_*.py` to skip image generation.\n\n\u003c!-- The figures look like this:\n![](images-public/cheminfomatics/average_clustering.png) --\u003e\n\n\u003c!-- See [Complete results](#complete-results). --\u003e\n\n\n## Datasets\n\nSee [dataset_loaders.py](./dataset_loaders.py) and [dataset](./dataset/) for details.\n\n\n\n\nThe `er_*` Erdos-Renyi random graphs are generated with `eg.erdos_renyi_P()`, available [here](https://github.com/tddschn/easygraph-bench/releases/tag/random-erdos-renyi-datasets).\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003c!-- BEGIN DATASET TABLE --\u003e\n\n| Dataset Name                                                                                            | nodes   | edges    | is_directed | average_degree     | density                | type                                     |\n| ------------------------------------------------------------------------------------------------------- | ------- | -------- | ----------- | ------------------ | ---------------------- | ---------------------------------------- |\n| [cheminformatics](https://networkrepository.com/ENZYMES-g1.php)                                         | 37      | 168      | True        | 9.08108108108108   | 0.12612612612612611    | easygraph.classes.directed_graph.DiGraph |\n| cheminformatics_lcc                                                                                     | 37      | 84       | False       | 4.54054054054054   | 0.12612612612612611    | networkx.classes.graph.Graph             |\n| [eco](https://networkrepository.com/econ-mahindas.php)                                                  | 1258    | 7619     | False       | 12.112877583465819 | 0.009636338570776308   | networkx.classes.graph.Graph             |\n| eco_lcc                                                                                                 | 1258    | 7619     | False       | 12.112877583465819 | 0.009636338570776308   | networkx.classes.graph.Graph             |\n| [bio](https://networkrepository.com/bio-yeast.php)                                                      | 1458    | 1948     | False       | 2.672153635116598  | 0.0018340107310340413  | easygraph.classes.graph.Graph            |\n| bio_lcc                                                                                                 | 1458    | 1948     | False       | 2.672153635116598  | 0.0018340107310340413  | networkx.classes.graph.Graph             |\n| [road_sampled](https://github.com/tddschn/easygraph-bench/blob/master/dataset/sampled)                  | 2075    | 1132     | False       | 1.0910843373493977 | 0.0005260773082687548  | networkx.classes.graph.Graph             |\n| facebook                                                                                                | 4039    | 88234    | True        | 43.69101262688784  | 0.0054099817517196435  | networkx.classes.digraph.DiGraph         |\n| facebook_lcc                                                                                            | 4039    | 88234    | False       | 43.69101262688784  | 0.010819963503439287   | networkx.classes.graph.Graph             |\n| [coauthorship_sampled](https://github.com/tddschn/easygraph-bench/blob/master/dataset/sampled)          | 4340    | 6398     | False       | 2.9483870967741934 | 0.0006795084343798557  | networkx.classes.graph.Graph             |\n| [uspowergrid](https://toreopsahl.com/datasets/#uspowergrid)                                             | 4941    | 6594     | False       | 2.66909532483303   | 0.0005403026973346214  | networkx.classes.graph.Graph             |\n| uspowergrid_lcc                                                                                         | 4941    | 6594     | False       | 2.66909532483303   | 0.0005403026973346214  | networkx.classes.graph.Graph             |\n| [pgp_sampled](https://github.com/tddschn/easygraph-bench/blob/master/dataset/sampled)                   | 6465    | 18906    | True        | 5.848723897911833  | 0.00045240747972709105 | networkx.classes.digraph.DiGraph         |\n| wikivote_lcc                                                                                            | 7066    | 100736   | False       | 28.512878573450326 | 0.004035793145569756   | networkx.classes.graph.Graph             |\n| [wikivote](https://snap.stanford.edu/data/wiki-Vote.html)                                               | 7115    | 100762   | True        | 29.146591707659873 | 0.0020485375110809584  | networkx.classes.digraph.DiGraph         |\n| hepth_lcc                                                                                               | 8638    | 24827    | False       | 5.748321370687659  | 0.0006655460658431931  | networkx.classes.graph.Graph             |\n| [pgp_undirected_sampled](https://github.com/tddschn/easygraph-bench/blob/master/dataset/sampled)        | 8781    | 51939    | False       | 11.829859924837718 | 0.0013473644561318586  | networkx.classes.graph.Graph             |\n| [enron_sampled](https://github.com/tddschn/easygraph-bench/blob/master/dataset/sampled)                 | 9301    | 79905    | False       | 17.182023438339964 | 0.001847529401972039   | networkx.classes.graph.Graph             |\n| hepth                                                                                                   | 9877    | 25998    | False       | 5.264351523742027  | 0.000533044909248889   | networkx.classes.graph.Graph             |\n| condmat_lcc                                                                                             | 21363   | 91342    | False       | 8.551420680616019  | 0.0004003099279382089  | networkx.classes.graph.Graph             |\n| [condmat](https://snap.stanford.edu/data/ca-CondMat.html)                                               | 23133   | 93497    | False       | 8.083430596982666  | 0.0003494479766981958  | networkx.classes.graph.Graph             |\n| enron_lcc                                                                                               | 33696   | 180811   | False       | 10.731896961063628 | 0.0003185011711252004  | networkx.classes.graph.Graph             |\n| [enron](https://snap.stanford.edu/data/email-Enron.html)                                                | 36692   | 183831   | False       | 10.020222391802028 | 0.00027309755503535    | networkx.classes.graph.Graph             |\n| [pgp](https://github.com/tddschn/easygraph-bench/blob/master/dataset/pgp/pgp.xml)                       | 39796   | 301498   | True        | 15.15217609810031  | 0.00019037788790175037 | networkx.classes.digraph.DiGraph         |\n| [pgp_undirected](https://github.com/tddschn/easygraph-bench/blob/master/dataset/pgp/pgp_undirected.xml) | 39796   | 197150   | False       | 9.908030957885215  | 0.00024897677994434515 | networkx.classes.graph.Graph             |\n| pgp_lcc                                                                                                 | 39796   | 197150   | False       | 9.908030957885215  | 0.00024897677994434515 | networkx.classes.graph.Graph             |\n| pgp_undirected_lcc                                                                                      | 39796   | 197150   | False       | 9.908030957885215  | 0.00024897677994434515 | networkx.classes.graph.Graph             |\n| road_lcc                                                                                                | 126146  | 161950   | False       | 2.567659695907916  | 2.035482734874879e-05  | networkx.classes.graph.Graph             |\n| [road](https://networkrepository.com/road-usa.php)                                                      | 129164  | 165435   | False       | 2.5616270787525934 | 1.9832514564949666e-05 | easygraph.classes.graph.Graph            |\n| [amazon](https://snap.stanford.edu/data/amazon0302.html)                                                | 262111  | 1234877  | True        | 9.42254998836371   | 1.7974419114806206e-05 | networkx.classes.digraph.DiGraph         |\n| amazon_lcc                                                                                              | 262111  | 899792   | False       | 6.86573245685988   | 2.6194088195261075e-05 | networkx.classes.graph.Graph             |\n| [amazon_sampled](https://github.com/tddschn/easygraph-bench/blob/master/dataset/sampled)                | 262111  | 1234877  | True        | 9.42254998836371   | 1.7974419114806206e-05 | networkx.classes.digraph.DiGraph         |\n| [coauthorship](https://github.com/chenyang03/co-authorship-network)                                     | 402392  | 1234019  | False       | 6.1334171653512    | 1.5242431280399412e-05 | networkx.classes.graph.Graph             |\n| google_lcc                                                                                              | 855802  | 4291352  | False       | 10.028843120254452 | 1.1718662539836308e-05 | networkx.classes.graph.Graph             |\n| [google](https://snap.stanford.edu/data/web-Google.html)                                                | 875713  | 5105039  | True        | 11.659160021605253 | 6.656960291514363e-06  | networkx.classes.digraph.DiGraph         |\n| [pokec](https://snap.stanford.edu/data/soc-Pokec.html)                                                  | 1632803 | 30622564 | True        | 37.50919614919865  | 1.148614349725155e-05  | networkx.classes.digraph.DiGraph         |\n| pokec_lcc                                                                                               | 1632803 | 22301964 | False       | 27.31739713854029  | 1.6730379518484355e-05 | networkx.classes.graph.Graph             |\n| [er_500](https://github.com/tddschn/easygraph-bench/blob/master/dataset_loaders.py)                     | 500     | 2511     | False       | 10.044             | 0.020128256513026053   | easygraph.classes.graph.Graph            |\n| [er_1000](https://github.com/tddschn/easygraph-bench/blob/master/dataset_loaders.py)                    | 1000    | 4950     | False       | 9.9                | 0.00990990990990991    | easygraph.classes.graph.Graph            |\n| [er_5000](https://github.com/tddschn/easygraph-bench/blob/master/dataset_loaders.py)                    | 5000    | 24920    | False       | 9.968              | 0.001993998799759952   | easygraph.classes.graph.Graph            |\n| [er_10000](https://github.com/tddschn/easygraph-bench/blob/master/dataset_loaders.py)                   | 10000   | 50023    | False       | 10.0046            | 0.0010005600560056005  | easygraph.classes.graph.Graph            |\n| [er_paper_20221213_50000](https://github.com/tddschn/easygraph-bench/blob/master/dataset_loaders.py)    | 50000   | 60316    | False       | 2.41264            | 4.8253765075301506e-05 | easygraph.classes.graph.Graph            |\n| [er_paper_20221213_500000](https://github.com/tddschn/easygraph-bench/blob/master/dataset_loaders.py)   | 500000  | 70315    | False       | 0.28126            | 5.625211250422501e-07  | easygraph.classes.graph.Graph            |\n| [er_paper_20221213_1000000](https://github.com/tddschn/easygraph-bench/blob/master/dataset_loaders.py)  | 1000000 | 80266    | False       | 0.160532           | 1.6053216053216054e-07 | easygraph.classes.graph.Graph            |\n\n\n\u003c!-- END DATASET TABLE --\u003e\n\u003c!-- The benchmarking were run on Ubuntu 20.04 with GitHub Actions on [GitHub-hosted runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#cloud-hosts-used-by-github-hosted-runners) with CPython 3.10. --\u003e\n\n\n\u003c!-- Results were generated by running `./bench.py`. See also [bench.yaml](./.github/workflows/bench.yaml). --\u003e\n\nObjective 1:\n\n![](images/bench-results-spreadsheet-screenshot-2022-10-19.png)\n\n### Bench results REST API\n\n- Try it out: \n  - For local benchmarking results:\n    - https://easygraph-bench-results.teddysc.me/results?dataset=eco\u0026method=effective_size\n    - https://easygraph-bench-results.teddysc.me/graph_info\n  - For server benchmarking results:  \n    Just prepend `/s` in the URL path, like so:\n    - https://easygraph-bench-results.teddysc.me/s/results?dataset=eco\u0026method=effective_size\n    - https://easygraph-bench-results.teddysc.me/s/graph_info\n- Documentation: https://easygraph-bench-results.teddysc.me/docs\n\n\n### Results downloads\n\nYou can download the benchmarking results on the [Releases](https://github.com/tddschn/easygraph-bench/releases) page.\n\nThe [`server` release](https://github.com/tddschn/easygraph-bench/releases/tag/server) contains benchmarking run on a powerful EC2 server (c5.2xlarge), for the paper.\n\n\u003c!-- ### Complete results\n\nClick on the triangles to see the results.  \nThe images may take sometime to load.\n\n`avg_time == -1` means method not supported by graph type (`NetworkXNotImplemented` or `EasyGraphNotImplemented` exceptions thrown).\n\n`avg_time == -10` means that the benchmarking of this method was timed out. --\u003e\n\n\u003c!-- the markdown code below this line is auto generated by `./gen_results_markdown.py` --\u003e\n\n\n## FAQ\n\n### How do I use your benchmarking code on other datasets?\n\nSimply write a function `load_\u003cdataset_name\u003e()` and add it to [`dataset_loaders.py`](./dataset_loaders.py). Checkout the examples in that file.\n\nThen duplicate any of the benchmarking script, and replace the loading function with your own loader.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftddschn%2Feasygraph-bench","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftddschn%2Feasygraph-bench","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftddschn%2Feasygraph-bench/lists"}