{"id":29507245,"url":"https://github.com/antonmeep/profdump","last_synced_at":"2025-07-16T03:30:40.420Z","repository":{"id":48917294,"uuid":"89863132","full_name":"AntonMeep/profdump","owner":"AntonMeep","description":"Processes profiling output of the D compiler","archived":false,"fork":false,"pushed_at":"2021-07-05T19:22:27.000Z","size":5084,"stargazers_count":15,"open_issues_count":6,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-15T09:43:28.578Z","etag":null,"topics":["cli","converter","dlang","dot","graph","json","profiler"],"latest_commit_sha":null,"homepage":"","language":"D","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/AntonMeep.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}},"created_at":"2017-04-30T16:36:40.000Z","updated_at":"2024-08-28T22:31:09.000Z","dependencies_parsed_at":"2022-09-13T19:11:08.518Z","dependency_job_id":null,"html_url":"https://github.com/AntonMeep/profdump","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/AntonMeep/profdump","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonMeep%2Fprofdump","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonMeep%2Fprofdump/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonMeep%2Fprofdump/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonMeep%2Fprofdump/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AntonMeep","download_url":"https://codeload.github.com/AntonMeep/profdump/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonMeep%2Fprofdump/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265479357,"owners_count":23773524,"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":["cli","converter","dlang","dot","graph","json","profiler"],"created_at":"2025-07-16T03:30:38.739Z","updated_at":"2025-07-16T03:30:40.275Z","avatar_url":"https://github.com/AntonMeep.png","language":"D","funding_links":[],"categories":[],"sub_categories":[],"readme":"profdump [![Page on DUB](https://img.shields.io/dub/v/profdump.svg)](http://code.dlang.org/packages/profdump) \n[![License](https://img.shields.io/dub/l/profdump.svg)](https://github.com/AntonMeep/profdump/blob/master/LICENSE)\n=============\nprofdump converts output of D programming language profiler into:\n- Plain text\n- JSON\n- DOT graph\n\n## Why?\nBecause profiler gives you [this](./example/simple.log). It's very hard to read and understand it.\nprofdump can convert it to:\n- [plain text](./example/sample/simple.txt)\n- [json](./example/sample/simple.json)\n\nor just draw this beautiful graph:\n![simple graph](./example/example.png?raw=true)\n\n## Usage\n```\nUsage: profdump [options] [input file] [output file]\nConverts the output of dlang compiler into a plain text, json or dot graph.\nIf input file is not specified, looks for 'trace.log' file.\nYou can set input and output file to stdin/stdout by passing '-' instead of file name.\n\nOptions:\n-p     --plain print detailed information about functions (default)\n-j      --json print JSON\n-d       --dot output dot graph\n-b     --blame print list of functions ordered by time\n-t --threshold (% of main function) hide functions below this threshold (default: 0.0)\n      --pretty prettify JSON output (default: true)\n      --colour customize colours of dot graph nodes (default: [0:\"limegreen\", 10:\"slateblue\", 50:\"royalblue\", 95:\"red\", 25:\"steelblue\", 75:\"navy\"])\n-f     --force overwrite output file if exists\n-v   --verbose do not minimize function names\n-h      --help This help information.\n```\n\n## Graph output\nEvery node represents a function and has the following layout:\n```\n+----------------------------+\n|        Function name       |\n| total time % (self time %) |\n+----------------------------+\n```\n\nAnd edge represents the calls between two functions and has the following layout:\n```\n           calls\nparent --------------\u003e child\n\n```\n\n## Plain text output\nPrints everything. Basically converts `trace.log` making it easier to read.\nCheck out examples:\n- [Simple example](./example/sample/simple.txt)\n- [Profdump's trace.log dump](./example/sample/profdump.txt)\n\n## `--blame` option\nPrints functions ordered by time:\n```\nvoid main()                             \t0.01277s 100.00%\nulong example.fib(..)                   \t0.01153s 90.25%\nint example.child2(..)                  \t0.00012s 0.91%\nint example.child1(..)                  \t0.00002s 0.12%\nint example.sum(..)                     \t0.00000s 0.03%\n```\n\n## JSON output\nHas the following layout:\n```\n{\n\t\"functions\": [\n\t\t{\n\t\t\t\"name\": \u003cstring\u003e, // Demangled name of function\n\t\t\t\"mangled\": \u003cstring\u003e, // Mangled name of function\n\t\t\t\"time\": \u003cinteger\u003e, // Time spent on this function and all its children in ticks\n\t\t\t\"timeSec\": \u003cfloat\u003e, // Time spent on this function and all its children in seconds\n\t\t\t\"functionTime\": \u003cinteger\u003e, // Time spent on this function in ticks\n\t\t\t\"functionTimeSec\": \u003cfloat\u003e, // Time spent on this function in seconds\n\t\t\t\"perc\": \u003cfloat\u003e, // Time spent on this function and all its children in % of main function time\n\t\t\t\"functionPerc\": \u003cfloat\u003e, // Time spent on this function in % of main function time\n\t\t\t\"callsTo\": [ // All children which are called by this function\n\t\t\t\t{\n\t\t\t\t\t\"name\": \u003cstring\u003e, // Demangled name of children\n\t\t\t\t\t\"mangled\": \u003cstring, // Mangled name of children\n\t\t\t\t\t\"calls\": \u003cinteger\u003e, // Number of calls\n\t\t\t\t}\n\t\t\t\t\u003c...\u003e\n\t\t\t],\n\t\t\t\"calledBy\": [ // All functions that call this function\n\t\t\t\t{\n\t\t\t\t\t\"name\": \u003cstring\u003e, // Demangled name of parent\n\t\t\t\t\t\"mangled\": \u003cstring, // Mangled name of parent\n\t\t\t\t\t\"calls\": \u003cinteger\u003e, // Number of calls\n\t\t\t\t}\n\t\t\t\t\u003c...\u003e\n\t\t\t]\n\t\t}\n\t\t\u003c...\u003e\n\t],\n\t\"tps\": \u003cinteger\u003e // Number of ticks per second\n}\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantonmeep%2Fprofdump","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantonmeep%2Fprofdump","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantonmeep%2Fprofdump/lists"}