hadrieng2 / crofiler Goto Github PK
View Code? Open in Web Editor NEWA better visualization of clang's -ftime-trace output
A better visualization of clang's -ftime-trace output
The v2 binary release was botched by axodotdev/cargo-dist#362 . Once an updated cargo-dist is available, switch to that, delete all the tags, and retry.
Rust 1.65 stabilizes the std Backtrace type, which means that this project will soon be able to do with one less build dependency. Let's switch to it once that release is old enough to be featured in, say, the ubuntu repos.
Will allow me to drop the once_cell and atty dependencies.
Crofiler expends most of its complexity budget on the Hard Problem of parsing and simplifying C++ entity names with unknown source file context. We probably don't have enough developer brain time to additionally produce a higher-quality profile visualization along the lines of what Firefox Profiler does for perf.
But could we have a third crofiler visualization frontend that just emits some data file that Firefox Profiler can consume, and offload all advanced visualization concerns to Firefox Profiler?
The main unknown to be investigated is whether Firefox Profiler supports, or can be made to support, the simplified/full entity name dichotomy that is the soul of crofiler. And if not, whether we're okay with emitting only simplified entity names.
In practice, the most common way to resolve template bloat in Acts has been to outsource some of it to a separate source file. One standard way to do it in C++ is explicit instantiations + extern template. Could crofiler automatically generate some of this boilerplate?
Cargo workspaces have this cool feature where you can specify all your dependencies in one place and then the versions remain in sync for free across inner packages.
It worked well in another project, I should try it here too.
Right now, C++ entity name simplification works as follows:
โฆ
.This algorithm works well enough to offer the basic desired functionality, but has a number of known issues:
I'd like to try something along the lines of the following alternative algorithm instead:
I expect this to be a rather costly feature development, so it should only be done if this project starts to get more traction.
In addition to the simplified entity name displays in the symbol list, in TUI mode, crofiler
provides a full display in the lower half of the screen. It would be great if this full display were pretty-printed with proper attention to the compromise between keeping things readable and not using too much vertical space.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.