{"id":15506221,"url":"https://github.com/simply007/kontent-statiq-benchmark","last_synced_at":"2025-04-04T22:24:52.131Z","repository":{"id":94605339,"uuid":"316491886","full_name":"Simply007/kontent-statiq-benchmark","owner":"Simply007","description":"Benchmark for Kontent and Statiq. Alternation of Gatsby willit.build for Statiq.","archived":false,"fork":false,"pushed_at":"2021-01-26T08:21:11.000Z","size":143222,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-10T07:13:46.508Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Simply007.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-11-27T12:10:42.000Z","updated_at":"2021-01-26T08:21:14.000Z","dependencies_parsed_at":"2023-03-16T12:01:09.502Z","dependency_job_id":null,"html_url":"https://github.com/Simply007/kontent-statiq-benchmark","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simply007%2Fkontent-statiq-benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simply007%2Fkontent-statiq-benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simply007%2Fkontent-statiq-benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simply007%2Fkontent-statiq-benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Simply007","download_url":"https://codeload.github.com/Simply007/kontent-statiq-benchmark/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247257224,"owners_count":20909430,"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":[],"created_at":"2024-10-02T09:26:16.423Z","updated_at":"2025-04-04T22:24:52.110Z","avatar_url":"https://github.com/Simply007.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kontent and Statiq benchmark\r\n\r\nAlternation of the [Gatsby's willit.build benchmark](https://github.com/gatsbyjs/gatsby/tree/master/benchmarks/source-kontent) for [Statiq](https://statiq.dev/) and [Kentico Kontent](https://kontent.ai) as a data source.\r\n\r\n## 🧐 Results\r\n\r\n### On Github action\r\n\r\nSee [Github action logs](https://github.com/Simply007/kontent-statiq-benchmark/actions) for test runs (Generation time in `Publish` step in the build Job).\r\n\r\n\u003e Every test was ran twice (to ensure items are properly cached on Fastly CDN.\r\n\u003e\r\n\u003e 1st run\r\n\u003e \r\n\u003e * 512 pages - 8s (2m 17s for whole job incl. deploy to github pages)\r\n\u003e * 4096 pages - 17s (4m 35s for whole job incl. deploy to github pages)\r\n\u003e * 8192 pages - 29s (7m 17s for whole job incl. deploy to github pages)\r\n\u003e * 32768 pages - 1m 18s (23m 4s for whole job incl. deploy to github pages)\r\n\r\n**2nd run**\r\n\r\n* 512 pages - **9s** (2m 4s for whole job incl. deploy to github pages) - [JOB LINK](https://github.com/Simply007/kontent-statiq-benchmark/actions/runs/471564487)\r\n* 4096 pages - **13s** (4m 45s for whole job incl. deploy to github pages) - [JOB LINK](https://github.com/Simply007/kontent-statiq-benchmark/actions/runs/471550272)\r\n* 8192 pages - **16s** (7m 40s for whole job incl. deploy to github pages) - [JOB LINK](https://github.com/Simply007/kontent-statiq-benchmark/actions/runs/471521860)\r\n* 32768 pages - **46s** (21m 17s for whole job incl. deploy to github pages) - [JOB LINK](https://github.com/Simply007/kontent-statiq-benchmark/actions/runs/471459012)\r\n\r\n## How to use\r\n\r\n### Download manually\r\n\r\nDownload the example:\r\n\r\n```sh\r\ngit clone https://github.com/Simply007/kontent-statiq-benchmark\r\ncd kontent-statiq-benchmark\r\n```\r\n\r\n## Configuration\r\n\r\nIf you want to use prepared project skip following section. YOu could just run the test.\r\n\r\n### Import content models and it's data (512 pages)\r\n\r\n1. Enter [Kontent application](https://app.kontent.ai)\r\n1. Go to \"Project Settings\", select API keys\r\n1. Activate Management API\r\n1. Copy `Project ID` and `Management API` key\r\n1. Install [Kontent Backup Manager](https://github.com/Kentico/kontent-backup-manager-js) and import data to newly created project from [kontent-backup.zip](./kontent-backup.zip) file (place appropriate values for apiKey and projectId arguments):\r\n\r\n   ```sh\r\n   npm i -g @kentico/kontent-backup-manager\r\n   kbm --action=restore --apiKey=\u003cManagement API key\u003e --projectId=\u003cProject ID\u003e --zipFilename=kontent-backup\r\n   ```\r\n\r\n   \u003e **:bulb: Alternatively, you can use the [Template Manager UI](https://kentico.github.io/kontent-template-manager/import-from-file) for importing the content.**\r\n\r\n1. Go to your Kontent project and publish all the imported items.\r\n   \u003e You could deactivate Management API key, it is not necessary any more.\r\n\r\n💡 If you want to generate bigger data sets, use [Kontent Data Generator](https://github.com/Simply007/kontent-data-generator).\r\n\r\n## Run the benchmark\r\n\r\n```sh\r\ndotnet run  --configuration Release\r\n```\r\n\r\nThe output wit the generation time should looks like that (**Last line**):\r\n\r\n```plain\r\nRun dotnet run --configuration Release\r\n[INFO] Statiq Framework version 1.0.0-beta.29+a415eded36042aa7385b2f5b05cbf3d45ce2b7c7\r\n[INFO] Statiq Web version 1.0.0-beta.14+cdb07e6364c16d1c6d5787f84bd8bc952e03ae3f\r\n[INFO] Root path:\r\n       /home/runner/work/kontent-statiq-benchmark/kontent-statiq-benchmark\r\n[INFO] Input path(s):\r\n       theme/input\r\n       input\r\n[INFO] Output path:\r\n       output\r\n[INFO] Temp path:\r\n       temp\r\n[INFO] ========== Execution ==========\r\n[INFO] Executing 12 pipelines (AnalyzeContent, Archives, ArticlesPipeline, Assets, Content, Data, DirectoryMetadata, Feeds, HomePipeline, Inputs, Redirects, Sitemap)\r\n[INFO] Cleaned temp directory: temp\r\n[INFO] Cleaned output directory: output\r\n[INFO] -\u003e Inputs/Input » Starting Inputs Input phase execution... (0 input document(s), 1 module(s))\r\n[INFO] -\u003e ArticlesPipeline/Input » Starting ArticlesPipeline Input phase execution... (0 input document(s), 1 module(s))\r\n[INFO] -\u003e DirectoryMetadata/Input » Starting DirectoryMetadata Input phase execution... (0 input document(s), 1 module(s))\r\n[INFO] \u003c- Inputs/Input » Finished Inputs Input phase execution (1 output document(s), 1719 ms)\r\n[INFO] \u003c- DirectoryMetadata/Input » Finished DirectoryMetadata Input phase execution (0 output document(s), 870 ms)\r\n[INFO] -\u003e DirectoryMetadata/Process » Starting DirectoryMetadata Process phase execution... (0 input document(s), 1 module(s))\r\n[INFO] \u003c- DirectoryMetadata/Process » Finished DirectoryMetadata Process phase execution (0 output document(s), 2 ms)\r\n[INFO] -\u003e Inputs/Process » Starting Inputs Process phase execution... (1 input document(s), 9 module(s))\r\n[INFO] \u003c- Inputs/Process » Finished Inputs Process phase execution (1 output document(s), 150 ms)\r\n[INFO] -\u003e Assets/Process » Starting Assets Process phase execution... (0 input document(s), 3 module(s))\r\n[INFO] -\u003e Data/Process » Starting Data Process phase execution... (0 input document(s), 5 module(s))\r\n[INFO] \u003c- Data/Process » Finished Data Process phase execution (0 output document(s), 14 ms)\r\n[INFO] -\u003e Content/Process » Starting Content Process phase execution... (0 input document(s), 4 module(s))\r\n[INFO] \u003c- Assets/Process » Finished Assets Process phase execution (1 output document(s), 820 ms)\r\n[INFO] \u003c- Content/Process » Finished Content Process phase execution (0 output document(s), 825 ms)\r\n[INFO] -\u003e Redirects/Process » Starting Redirects Process phase execution... (0 input document(s), 2 module(s))\r\n[INFO] -\u003e Archives/Process » Starting Archives Process phase execution... (0 input document(s), 3 module(s))\r\n[INFO] \u003c- Archives/Process » Finished Archives Process phase execution (0 output document(s), 1 ms)\r\n[INFO] -\u003e Feeds/Process » Starting Feeds Process phase execution... (0 input document(s), 3 module(s))\r\n[INFO] \u003c- Feeds/Process » Finished Feeds Process phase execution (0 output document(s), 1 ms)\r\n[INFO] \u003c- Redirects/Process » Finished Redirects Process phase execution (0 output document(s), 5 ms)\r\n[INFO] \u003c- ArticlesPipeline/Input » Finished ArticlesPipeline Input phase execution (512 output document(s), 2574 ms)\r\n[INFO] -\u003e ArticlesPipeline/Process » Starting ArticlesPipeline Process phase execution... (512 input document(s), 3 module(s))\r\n[INFO] [Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager] User profile is available. Using '/home/runner/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest.\r\n[INFO] \u003c- ArticlesPipeline/Process » Finished ArticlesPipeline Process phase execution (512 output document(s), 4536 ms)\r\n[INFO] -\u003e HomePipeline/Process » Starting HomePipeline Process phase execution... (0 input document(s), 2 module(s))\r\n[INFO] \u003c- HomePipeline/Process » Finished HomePipeline Process phase execution (1 output document(s), 1 ms)\r\n[INFO] -\u003e Sitemap/PostProcess » Starting Sitemap PostProcess phase execution... (0 input document(s), 1 module(s))\r\n[INFO] -\u003e ArticlesPipeline/Output » Starting ArticlesPipeline Output phase execution... (512 input document(s), 1 module(s))\r\n[INFO] \u003c- Sitemap/PostProcess » Finished Sitemap PostProcess phase execution (1 output document(s), 1 ms)\r\n[INFO] -\u003e HomePipeline/Output » Starting HomePipeline Output phase execution... (1 input document(s), 3 module(s))\r\n[INFO] -\u003e Data/Output » Starting Data Output phase execution... (0 input document(s), 2 module(s))\r\n[INFO] -\u003e Content/PostProcess » Starting Content PostProcess phase execution... (0 input document(s), 1 module(s))\r\n[INFO] -\u003e Archives/PostProcess » Starting Archives PostProcess phase execution... (0 input document(s), 1 module(s))\r\n[INFO] -\u003e Feeds/Output » Starting Feeds Output phase execution... (0 input document(s), 2 module(s))\r\n[INFO] -\u003e Assets/Output » Starting Assets Output phase execution... (1 input document(s), 2 module(s))\r\n[INFO] -\u003e Redirects/Output » Starting Redirects Output phase execution... (0 input document(s), 1 module(s))\r\n[INFO] -\u003e Sitemap/Output » Starting Sitemap Output phase execution... (1 input document(s), 1 module(s))\r\n[INFO] \u003c- Content/PostProcess » Finished Content PostProcess phase execution (0 output document(s), 7 ms)\r\n[INFO] -\u003e Content/Output » Starting Content Output phase execution... (0 input document(s), 2 module(s))\r\n[INFO] \u003c- Data/Output » Finished Data Output phase execution (0 output document(s), 8 ms)\r\n[INFO] \u003c- Redirects/Output » Finished Redirects Output phase execution (0 output document(s), 5 ms)\r\n[INFO] \u003c- Feeds/Output » Finished Feeds Output phase execution (0 output document(s), 6 ms)\r\n[INFO] \u003c- Archives/PostProcess » Finished Archives PostProcess phase execution (0 output document(s), 8 ms)\r\n[INFO] -\u003e Archives/Output » Starting Archives Output phase execution... (0 input document(s), 2 module(s))\r\n[INFO] \u003c- Archives/Output » Finished Archives Output phase execution (0 output document(s), 0 ms)\r\n[INFO] \u003c- Content/Output » Finished Content Output phase execution (0 output document(s), 2 ms)\r\n[INFO] \u003c- Sitemap/Output » Finished Sitemap Output phase execution (1 output document(s), 10 ms)\r\n[INFO] \u003c- Assets/Output » Finished Assets Output phase execution (1 output document(s), 11 ms)\r\n[INFO] \u003c- ArticlesPipeline/Output » Finished ArticlesPipeline Output phase execution (512 output document(s), 107 ms)\r\n[INFO] \u003c- HomePipeline/Output » Finished HomePipeline Output phase execution (1 output document(s), 288 ms)\r\n[INFO] -\u003e AnalyzeContent/Input » Starting AnalyzeContent Input phase execution... (0 input document(s), 1 module(s))\r\n[INFO] \u003c- AnalyzeContent/Input » Finished AnalyzeContent Input phase execution (1 output document(s), 1 ms)\r\n[INFO] AnalyzeContent/Process » Running 3 analyzers (FencedCodeBlocksShouldHaveLanguage, ValidateRelativeLinks, ValidateAbsoluteLinks)\r\n[INFO] ========== Execution Summary ==========\r\n\r\nNumber of output documents per pipeline and phase:\r\n\r\n | Pipeline          | Input         | Process       | PostProcess | Output       | Total Time | \r\n |---------------------------------------------------------------------------------------------| \r\n | AnalyzeContent    | 1 (1 ms)      |               |             |              | 1 ms       | \r\n | Archives          |               | 0 (1 ms)      | 0 (8 ms)    | 0 (0 ms)     | 9 ms       | \r\n | ArticlesPipeline  | 512 (2574 ms) | 512 (4536 ms) |             | 512 (107 ms) | 7217 ms    | \r\n | Assets            |               | 1 (820 ms)    |             | 1 (11 ms)    | 831 ms     | \r\n | Content           |               | 0 (825 ms)    | 0 (7 ms)    | 0 (2 ms)     | 834 ms     | \r\n | Data              |               | 0 (14 ms)     |             | 0 (8 ms)     | 22 ms      | \r\n | DirectoryMetadata | 0 (870 ms)    | 0 (2 ms)      |             |              | 872 ms     | \r\n | Feeds             |               | 0 (1 ms)      |             | 0 (6 ms)     | 7 ms       | \r\n | HomePipeline      |               | 1 (1 ms)      |             | 1 (288 ms)   | 289 ms     | \r\n | Inputs            | 1 (1719 ms)   | 1 (150 ms)    |             |              | 1869 ms    | \r\n | Redirects         |               | 0 (5 ms)      |             | 0 (5 ms)     | 10 ms      | \r\n | Sitemap           |               |               | 1 (1 ms)    | 1 (10 ms)    | 11 ms      | \r\n\r\nPipeline phase timeline:\r\n\r\n | Pipeline          | Timeline (8086 total ms)                                                             | \r\n |----------------------------------------------------------------------------------------------------------| \r\n | AnalyzeContent    |                                                                                  I   | \r\n | Archives          |                            P                                                  TO     | \r\n | ArticlesPipeline  |        I-------------------------P--------------------------------------------O      | \r\n | Assets            |                    P-------                                                   O      | \r\n | Content           |                    P-------                                                   TO     | \r\n | Data              |                    P                                                          O      | \r\n | DirectoryMetadata |          I--------P                                                                  | \r\n | Feeds             |                            P                                                  O      | \r\n | HomePipeline      |                                                                               PO-    | \r\n | Inputs            | I-----------------P                                                                  | \r\n | Redirects         |                            P                                                  O      | \r\n | Sitemap           |                                                                               TO     | \r\n\r\n\r\n[INFO] ========== Completed ==========\r\n[INFO] Finished execution in 8259 ms\r\n[INFO] Cleaned temp directory: temp\r\n```\r\n\r\n### Set up app setting\r\n\r\nIf you want to test out different data  Set `app.settings` ProjectId to:\r\n\r\n* 512 pages: \"a10066e5-3116-009d-b85f-92a648ba1b5e\"\r\n* 4096 pages: \"cf018856-cb3d-00c8-6833-9b42bf5464dc\"\r\n* 8192 pages: \"582c80c7-df57-00b5-d969-64b3cc3d4a36\"\r\n* 32 768 pages: \"4b48bc3a-83aa-000e-55e0-4e1bcf9e829d\"\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimply007%2Fkontent-statiq-benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimply007%2Fkontent-statiq-benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimply007%2Fkontent-statiq-benchmark/lists"}