{"id":24479834,"url":"https://github.com/khbminus/code-size-profiler","last_synced_at":"2026-07-22T15:31:56.964Z","repository":{"id":176985941,"uuid":"659818913","full_name":"khbminus/code-size-profiler","owner":"khbminus","description":null,"archived":false,"fork":false,"pushed_at":"2023-08-31T17:08:28.000Z","size":187,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-21T14:44:56.478Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","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/khbminus.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":"2023-06-28T16:15:13.000Z","updated_at":"2023-06-28T16:17:35.000Z","dependencies_parsed_at":"2025-01-21T10:40:12.613Z","dependency_job_id":null,"html_url":"https://github.com/khbminus/code-size-profiler","commit_stats":null,"previous_names":["khbminus/code-size-profiler"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/khbminus/code-size-profiler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khbminus%2Fcode-size-profiler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khbminus%2Fcode-size-profiler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khbminus%2Fcode-size-profiler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khbminus%2Fcode-size-profiler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/khbminus","download_url":"https://codeload.github.com/khbminus/code-size-profiler/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khbminus%2Fcode-size-profiler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35768235,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-22T02:00:06.236Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2025-01-21T10:27:18.554Z","updated_at":"2026-07-22T15:31:56.926Z","avatar_url":"https://github.com/khbminus.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Qodana](https://github.com/khbminus/code-size-profiler/actions/workflows/qodana.yaml/badge.svg)](https://github.com/khbminus/code-size-profiler/actions/workflows/qodana.yaml)\n\nTo run this script, you need to generate dumps with the patched compiler (currently branch `dce-info-json-fix`).\n\nHow to use:\n\n```shell\n$ ./run.sh -e kotlin.test -e \u003cfqn\u003e -e \u003cfqn\u003e \u003cDeclaration IR Sizes of left file\u003e \\\n           \u003cDCE Graph of left file\u003e \\\n           \u003cDeclaration IR Sizes of right file\u003e \\\n           \u003cDCE Graph of right file\u003e\n```\n\nThe script also could be used in one-dump mode:\n\n```shell\n$ ./run.sh [-e \u003cfqn\u003e [-e \u003cfqn\u003e...]] \u003cIR Dump\u003e \u003cDCE Dump\u003e\n```\n\nUse `-e` flag to filter dump for some fqns.\n\nThis builds traversable graphs and treemaps (for left and right dumps), treemap of difference,\ndifference of dominator trees and traversable difference of graphs. Moreover, it generates table of differences.\n\nAfter it, you can start server with `scripts/server.sh` file.\n\n# Graph Compression\n\nYou can use `filter-variable` command from kotlin application (by `./gradlew run --args='filter-variable'`) to compress\nDCE graph by removing variables and value parameters from edges. It stores the semantic by changing source vertexes of\nedges going from variables.\n\n# Traverse Graph\n\nThis page allows seeing the DCE graph structure.\nThe node is referring to the IR size of the node.\nTo start:\n\n* check some nodes in the menu on the right (NB: the search bar could\n  lag, since it filters with common linear string comparison algorithm)\n* Select the desirable maximum depth. Be careful, the high depth may freeze the page.\n\n# Zoomable treemap\n\nThe treemap allows seeing the size ratio between your code. All elements of IR dump split by FQN. To go deeper, click on\nthe element. To go back, click on the name above.\n\nThe right panel is used for filtering \u0026 choosing the size mode.\n\n# Sourcemap\n\nA page inspired by [Godbolt](https://godbolt.org). The page has two sides: on the left there are several kotlin files (\nuse the selector to choose the right one). The right side has a WAT text of compiled .wasm file. On hover in colored\narea the other side will scroll to chosen color.\n\nTo compile this page use `generate-source-map script`:\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhbminus%2Fcode-size-profiler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkhbminus%2Fcode-size-profiler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhbminus%2Fcode-size-profiler/lists"}