{"id":16271979,"url":"https://github.com/logcreative/pgfplots-benchmark","last_synced_at":"2026-01-05T10:45:14.959Z","repository":{"id":249473024,"uuid":"827402121","full_name":"LogCreative/pgfplots-benchmark","owner":"LogCreative","description":"Benchmark LaTeX compilation platforms based on PGFPlots examples","archived":false,"fork":false,"pushed_at":"2024-07-21T05:37:57.000Z","size":259,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-29T23:24:39.950Z","etag":null,"topics":["benchmark","latex","pgfplots"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LogCreative.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}},"created_at":"2024-07-11T15:32:10.000Z","updated_at":"2024-09-05T08:33:54.000Z","dependencies_parsed_at":"2024-07-21T06:36:53.806Z","dependency_job_id":null,"html_url":"https://github.com/LogCreative/pgfplots-benchmark","commit_stats":null,"previous_names":["logcreative/pgfplots-benchmark"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LogCreative%2Fpgfplots-benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LogCreative%2Fpgfplots-benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LogCreative%2Fpgfplots-benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LogCreative%2Fpgfplots-benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LogCreative","download_url":"https://codeload.github.com/LogCreative/pgfplots-benchmark/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245330263,"owners_count":20597743,"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","latex","pgfplots"],"created_at":"2024-10-10T18:15:34.264Z","updated_at":"2026-01-05T10:45:14.928Z","avatar_url":"https://github.com/LogCreative.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pgfplots-benchmark\nBenchmark LaTeX compilation platforms based on PGFPlots examples\n\n## Usage\n\nYou need to run the benchmark on a Linux operating system.\n\n### Clone all submodules\n\nThis benchmark contains some submodules, you need to clone them first.\n```bash\ngit submodule update --init\n```\n\n### Prepare the environment\n\nInstall [Anaconda](https://www.anaconda.com/download/success) first, and prepare the environment based on the config file `pgfplots_benchmark.yml`.\n\n```bash\nconda env update -n pgfplots_benchmark -f pgfplots_benchmark.yml\nconda activate pgfplots_benchmark\n```\n\n### Prepare the database\n\nThe database [latex_pgfplots_doctest](latex_pgfplots_doctest/), which is extracted from `pgfplots` documentation, should contain 728 examples with approximately 660 compilable files. \n\nTo extract the database, you need to install [Perl](https://www.perl.org/get.html) first (or install TeX Live directly), then run the following script:\n\n```bash\npython extract_dataset.py\n```\n\nThe dataset is not perfect, since the script converted every file into single standalone TeX file without any dependencies. There could be files that could not pass the compilation at all, or require LuaTeX to compile, or require `--shell-escape` option (mostly deactivated from servers).\n\n### Benchmark\n\nYou need to start docker before running benchmarks. If your current user does not have the privilege to run `docker`, you need to switch to the root user first by `sudo -s`.\n\n\u003e Most of the submodules are optimized by local mirrors. Remove those mirrors if you can not initialize docker containers.\n\n#### PGFPlotsEdt\n\nRun the script to start the non-deployment version (since it is not a docker version, you need to install TeX Live on your host):\n```bash\npython ppedt_benchmark.py\n```\n\nPass an additional argument to the script to start the deployment version:\n```bash\npython ppedt_benchmark.py --deploy\n```\n\n#### Overleaf\n\nYou need to start the docker container following [overleaf/services/clsi/README.md](https://github.com/overleaf/overleaf/blob/main/services/clsi/README.md) manually in a different terminal and stop it manually afterwards `docker stop clsi`.\n\nThen you could start the benchmark by\n```bash\npython overleaf_benchmark.py\n```\n\n#### LaTeX Online\n\nYou need to build the docker image first by\n```bash\ncd latex-online \u0026\u0026 docker build -t aslushnikov/latex-online:latest .\n```\n\nThen you could run the script to start the benchmark:\n```bash\npython laton_benchmark.py\n```\n\n### Statistics\n\nYou could merge all the results by\n```bash\npython merge_result.py\n```\nThe result will be in `merged_result_times_avg.csv` and `merged_result_times.csv`.\n\n## Result\n\nThe following result is tested on a typical server with 4 CPU cores and 4GB RAM.\n\n![](figs/avg.png)\n\n  : Average compilation time per file, only the common successful compilation files are taken into account.\n\n![](figs/full.png)\n\n  : Compilation time of every file, where files with compilation time of 0s are considered to be failed.\n\n## License\n\nSince most of the parts are licensed under GPL-3.0 or AGPL-3.0, this repo maintains the license of [AGPL-3.0](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flogcreative%2Fpgfplots-benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flogcreative%2Fpgfplots-benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flogcreative%2Fpgfplots-benchmark/lists"}