{"id":16157118,"url":"https://github.com/misode/worldgen-profiling","last_synced_at":"2025-03-18T20:30:47.590Z","repository":{"id":102026981,"uuid":"434393803","full_name":"misode/worldgen-profiling","owner":"misode","description":"Fabric mod that adds custom JFR events to profile world generation","archived":false,"fork":false,"pushed_at":"2023-12-12T01:12:55.000Z","size":164,"stargazers_count":3,"open_issues_count":1,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-16T23:42:06.165Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","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/misode.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}},"created_at":"2021-12-02T22:30:21.000Z","updated_at":"2023-10-30T16:14:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"07cfad3e-a725-4ad6-9d57-632a30945f39","html_url":"https://github.com/misode/worldgen-profiling","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/misode%2Fworldgen-profiling","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/misode%2Fworldgen-profiling/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/misode%2Fworldgen-profiling/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/misode%2Fworldgen-profiling/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/misode","download_url":"https://codeload.github.com/misode/worldgen-profiling/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244301271,"owners_count":20430912,"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-10T01:48:21.157Z","updated_at":"2025-03-18T20:30:47.227Z","avatar_url":"https://github.com/misode.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# worldgen-profiling\n\u003e Fabric mod that adds custom JFR events to profile world generation\n\n## Creating a JFR report\n1. Launch Minecraft 1.18 with [Fabric](https://fabricmc.net/use/).\n2. Download the [latest release](https://github.com/misode/worldgen-profiling/releases) and add it in the `mods` folder.\n3. Start by running the `/jfr start` command and generate new terrain.\n4. Run `/jfr stop`. This will create a file at `.minecraft/debug/client-*.jfr`.\n\n## Analyzing the JFR report\n1. Download and install the [JDK Mission Control](https://adoptopenjdk.net/jmc) tool.\n2. In Mission Control, navigate to `File \u003e Open File...` and select the JFR report.  \n![jmc_SuUZYxQXXM](https://user-images.githubusercontent.com/17352009/144514425-a71842e1-366c-4678-9465-beaed0a9e3af.png)\n3. Select the `Even Browser` Page in the Outline.  \n![jmc_rvRbBmPA1r](https://user-images.githubusercontent.com/17352009/144514569-9e50506b-1acf-45c5-aad5-d3427158ce6a.png)\n4. Find the `Minecraft \u003e World Generation \u003e Feature Placement` event type, and select it.\n5. Create a new page with just this event type.  \n![jmc_0pSlSrsXNA](https://user-images.githubusercontent.com/17352009/144514802-ca24340e-84f2-4213-9465-4a8fba4d9cf6.png)\n6. Because the JFR file has an event for each feature placement per chunk, it is useful to group events.  \n![jmc_di6ct6Eoin](https://user-images.githubusercontent.com/17352009/144514943-a6069315-49ad-4db7-88d7-6f1b10738361.png)\n![jmc_HvCkGq9xMT](https://user-images.githubusercontent.com/17352009/144515033-db20ffff-3171-43b1-b979-57164ea2007a.png)\n7. In this view, you can show average and total durations. It is now really easy to see which features are the bottlenecks.  \n![jmc_FwmZ5h4ZDg](https://user-images.githubusercontent.com/17352009/144515176-afe85862-ecd1-4e36-b5c9-9baf343a230c.png)\n![jmc_DxJRDkXVTw](https://user-images.githubusercontent.com/17352009/144515232-91e7f84f-c535-406f-936a-6d0973fefb71.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmisode%2Fworldgen-profiling","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmisode%2Fworldgen-profiling","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmisode%2Fworldgen-profiling/lists"}