{"slug": "perf", "name": "perf", "category": "other", "category_name": "Other software", "description": "", "recommenders": 3, "commenters": 7, "warners": 1, "score": 2.403, "rising": -0.98, "first": "2025-11-11", "latest": "2026-07-26", "why": "Try the relatively new top-down microarchitectural analysis in perf", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 2, "compare": 1, "warn": 1}, "spark": [0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "Try the relatively new top-down microarchitectural analysis in perf", "kind": "", "icon": true, "domain": null, "github_repo": null, "official_url": "https://perfwiki.github.io/main/", "pricing": "", "aliases": ["perf"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 785038837, "item_id": 49064927, "url": "https://news.ycombinator.com/item?id=49064927", "by": "Chu4eeno", "date": "2026-07-26", "version": null, "stance": "recommend", "quote": "Or just run `perf top` and see if anything stands out.", "excerpt": "It sounds like Wayland. When you decide to suddenly stuff some of the most complex pieces of software together (the X server and the compositor which sometimes also double as a desktop shell) into giant codebase/process with seemingly no proper plan or roadmap and make up the specification along the way (or just don't, wayland still has no proper XACE replacement, so kiosk tooling etc. is ad-hoc), you get Wayland in ", "context": "", "use_case": "", "switched_from": "", "story": "Nothing works and everyone is euphoric"}, {"id": 739612016, "item_id": 46225751, "url": "https://news.ycombinator.com/item?id=46225751", "by": "shoo", "date": "2025-12-10", "version": null, "stance": "recommend", "quote": "Getting familiar with linux's perf [1] tool is also helpful", "excerpt": "It'd also have been interesting to see some overall profiling data of the initial program & some discussion of which optimisations to investigate based on that profiling data. When investigating performance issues its often very helpful to run with profiling instrumentation enabled and start by looking at some top-down \"cumulative sum\" profiler output to get a big picture view of which functions/phases are consuming ", "context": "", "use_case": "CPU profiling", "switched_from": "", "story": "Super-Flat ASTs"}, {"id": 738820608, "item_id": 46176288, "url": "https://news.ycombinator.com/item?id=46176288", "by": "benbenolson", "date": "2025-12-06", "version": null, "stance": "recommend", "quote": "Try the relatively new top-down microarchitectural analysis in perf", "excerpt": "Try the relatively new top-down microarchitectural analysis in perf: https://perfwiki.github.io/main/top-down-analysis/", "context": "", "use_case": "CPU performance profiling", "switched_from": "", "story": "Leaving Intel"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 740163431, "item_id": 46260214, "url": "https://news.ycombinator.com/item?id=46260214", "by": "delta_p_delta_x", "date": "2025-12-13", "version": null, "stance": "warn", "quote": "GDB and perf are not even in the same league", "excerpt": "I use NVIDIA hardware which objectively have superior maximum performance compared to AMD graphics cards. I use HDR high pixel density monitors as well. I like laptops with decent battery life and decent touch pads. Windows simply offers a cleaner, more well put-together experience when it comes to these edge cases. I have many tiny nitpicks about how Linux behaves, and every time I go back to my Windows Enterprise i", "context": "", "use_case": "", "switched_from": "", "story": null}]}], "who": [], "tags": [], "use_cases": ["debugging iptables state", "debugging network performance", "cpu profiling", "cpu performance profiling", "cache miss profiling"], "compared": [], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=46524390", "title": "I Cannot SSH into My Server Anymore (and That's Fine)", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49033004", "title": "Nothing works and everyone is euphoric", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46259583", "title": "item 46259583", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46150677", "title": "Super-Flat ASTs", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46120732", "title": "Latency Profiling in Python: From Code Bottlenecks to Observability", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46167552", "title": "Leaving Intel", "mentions": 1}], "sentiment_by_month": {"2025-11": {"neutral": 1}, "2025-12": {"recommend": 2, "compare": 1, "warn": 1}, "2026-01": {"neutral": 1}, "2026-02": {}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {"recommend": 1}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 785038837, "item_id": 49064927, "url": "https://news.ycombinator.com/item?id=49064927", "by": "Chu4eeno", "date": "2026-07-26", "version": null, "stance": "recommend", "quote": "Or just run `perf top` and see if anything stands out.", "excerpt": "It sounds like Wayland. When you decide to suddenly stuff some of the most complex pieces of software together (the X server and the compositor which sometimes also double as a desktop shell) into giant codebase/process with seemingly no proper plan or roadmap and make up the specification along the way (or just don't, wayland still has no proper XACE replacement, so kiosk tooling etc. is ad-hoc), you get Wayland in ", "context": "", "use_case": "", "switched_from": "", "story": "Nothing works and everyone is euphoric"}, {"id": 745322768, "item_id": 46582673, "url": "https://news.ycombinator.com/item?id=46582673", "by": "ValdikSS", "date": "2026-01-11", "version": null, "stance": "neutral", "quote": "In this case I used `perf` utility, but only because the server does not have a proper observability tool.", "excerpt": "In this case I used `perf` utility, but only because the server does not have a proper observability tool. Take a look at this Netflix presentation, especially on the screenshots of their web interface tool: https://archives.kernel-recipes.org/wp-content/uploads/2025/01/kernelrecipesperfevents-170929090404-171007142608.pdf", "context": "", "use_case": "debugging iptables state", "switched_from": "", "story": "I Cannot SSH into My Server Anymore (and That's Fine)"}, {"id": 745321584, "item_id": 46582599, "url": "https://news.ycombinator.com/item?id=46582599", "by": "ValdikSS", "date": "2026-01-11", "version": null, "stance": "neutral", "quote": "run `perf`, generate flame graph, copy the .svg to the PC over SFTP", "excerpt": ">perf is a shell tool. iptables is a shell tool. sshguard is a log reader and ultimately you will use the CLI to take action. Well yes, and to be honest in this case I did that all over SSH: run `perf`, generate flame graph, copy the .svg to the PC over SFTP, open it in the file viewer. What I really wanted is a web interface which will just show me EVERYTHING it knows about the system in a form of charts, graphs, so", "context": "", "use_case": "debugging network performance", "switched_from": "", "story": "I Cannot SSH into My Server Anymore (and That's Fine)"}, {"id": 740163431, "item_id": 46260214, "url": "https://news.ycombinator.com/item?id=46260214", "by": "delta_p_delta_x", "date": "2025-12-13", "version": null, "stance": "warn", "quote": "GDB and perf are not even in the same league", "excerpt": "I use NVIDIA hardware which objectively have superior maximum performance compared to AMD graphics cards. I use HDR high pixel density monitors as well. I like laptops with decent battery life and decent touch pads. Windows simply offers a cleaner, more well put-together experience when it comes to these edge cases. I have many tiny nitpicks about how Linux behaves, and every time I go back to my Windows Enterprise i", "context": "", "use_case": "", "switched_from": "", "story": null}, {"id": 739612016, "item_id": 46225751, "url": "https://news.ycombinator.com/item?id=46225751", "by": "shoo", "date": "2025-12-10", "version": null, "stance": "recommend", "quote": "Getting familiar with linux's perf [1] tool is also helpful", "excerpt": "It'd also have been interesting to see some overall profiling data of the initial program & some discussion of which optimisations to investigate based on that profiling data. When investigating performance issues its often very helpful to run with profiling instrumentation enabled and start by looking at some top-down \"cumulative sum\" profiler output to get a big picture view of which functions/phases are consuming ", "context": "", "use_case": "CPU profiling", "switched_from": "", "story": "Super-Flat ASTs"}, {"id": 739349377, "item_id": 46209336, "url": "https://news.ycombinator.com/item?id=46209336", "by": "Veserv", "date": "2025-12-09", "version": null, "stance": "compare", "quote": "perf is a sampling profiler, not a function tracing profiler", "excerpt": "perf is a sampling profiler, not a function tracing profiler, so that fails the criteria I presented. I used FunctionTrace as a example and evidence for my position that tracing Python is low overhead with proper design to bypass claims like: \u201cYou can not make it that low overhead or someone would have done it already, thus proving the negative.\u201d I am not the author or in any way related to it, so you can bring that ", "context": "", "use_case": "", "switched_from": "", "story": "Latency Profiling in Python: From Code Bottlenecks to Observability"}, {"id": 738820608, "item_id": 46176288, "url": "https://news.ycombinator.com/item?id=46176288", "by": "benbenolson", "date": "2025-12-06", "version": null, "stance": "recommend", "quote": "Try the relatively new top-down microarchitectural analysis in perf", "excerpt": "Try the relatively new top-down microarchitectural analysis in perf: https://perfwiki.github.io/main/top-down-analysis/", "context": "", "use_case": "CPU performance profiling", "switched_from": "", "story": "Leaving Intel"}, {"id": 734301168, "item_id": 45893823, "url": "https://news.ycombinator.com/item?id=45893823", "by": "lukefleed", "date": "2025-11-11", "version": null, "stance": "neutral", "quote": "I used perf to look at cache miss rates and memory bandwidth during runs.", "excerpt": "Thanks! I used perf to look at cache miss rates and memory bandwidth during runs. The measurements showed the pattern I expected, but I didn't do a rigorous profiling study (different cache sizes, controlled benchmarks across architectures, or proper statistical analysis). This was for a university exam, and I ran out of time to do it properly. The cache argument makes intuitive sense (three vectors cycling vs. scann", "context": "", "use_case": "cache miss profiling", "switched_from": "", "story": "Cache-friendly, low-memory Lanczos algorithm in Rust"}]}