Git Product home page Git Product logo

seeprofiler's Introduction

See++ Compiler Profiler Export App

Visual C/C++ Profiler for Clang 9 or higher. Using the flag -ftime-trace (see Clang 9 release notes) Clang will create a time report (.json) next to the generated .obj file. Within See++ Compiler Profiler multiple reports can be aggregated in one single view, giving valuable information at a project scale.

It will help identify and track how includes, templates, function instantiations, etc. perform inside the compiler, being able to pinpoint the most expensive ones (or anything of particular interest, really).

Get Latest Windows

Get Latest Linux (Not tested)

Get Latest MacOS (Not tested)

Usage

Drag or open the folders and files to be inspected. All the files will be parsed (this can take some time if the project is really big) and the overview window will show up with a full recap for all translation units found.

Overview screenshot

The graphs on top can be used to switch between the different categories in order to visualize more specific data.

Any row can be double-clicked to visualize the actual timeline for the given translation unit or for the translation unit that contains the worst offender (for source, class, function...).

Timeline screenshot

(use Ctrl+MouseWheel for zoom in/out)

How to build the project

First of all node.js needs to be installed.

Make sure the commands are run inside the SeeProfiler subfolder:

cd SeeProfiler

Install the project dependencies:

npm install

Run the application:

npm start

Alternatively the App can be launched within Visual Studio Code.

Creating a package

To export the project as a standalone application:

npm run export

External Libraries

  • See++ Compiler Profiler is based on Electron.

seeprofiler's People

Contributors

viladoman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

linecode

seeprofiler's Issues

The font size is unreadable on M1

I was excited about this over Compiler Score since it works on macOS. So Xcode is generating the json, and SeeProfile opens it. But all text is displayed without regard to retina resolution. The font looks like it's 8pt font, but on a 14" MBP M1 that's super tiny. And cmd +/- don't magnify the render. Similarly impossible to read the flamechart when clicking on a file.

Pinch-zoom seems to work from touchpad, but panning doesn't. I've gotten used to Perfetto's wasd for scroll left-right and zoom in-out. Also a hover tip with name and time would save having to zoom in/out when the timing chunk is too small or not enough space to display the name.

Workaround for now I guess would be to reduce monitor resolution or display on a non-retina display. This is a cool profiler, and I've also been trying to integrate fastl into my kram project. I used to work on the precursor to EASTL, but that stl is huge. Keep up all the good work!

No window opens on MacOS

I tried to run the application on MacOS, but no window opens.

The following error is logged when running the application via the command line:

Error: Image could not be created from /Users/username/Downloads/SeeProfiler-darwin-x64/SeeProfiler.app/Contents/Resources/app/main/data/logo.ico
    at App.CreateWindow (/Users/username/Downloads/SeeProfiler-darwin-x64/SeeProfiler.app/Contents/Resources/app/app.js:39:9)

Timings need tracked a a self time

Seems like the timings are not tracked as a self time. This is problematic for assessing which header to target. When X includes Y, they're not both 1s of Source time in the spreadsheet. X is 0.1s, and Y is 0.9s.

Show full file name as tooltip in flame graph

If there is insufficient space in the flame graph, then file names will get truncated.

I know, that I can zoom in and zoom out, but I think, it would be useful, to get a tooltip with the complete file name when hovering with the cursor over a certain item.

Crash at startup

I get the following errors on Debian GNU/Linux bookworm/sid x86_64, with npm 8.12.1 and nodejs
v16.14.2:

Uncaught ReferenceError: require is not defined
    at index.html:18:13
VM240 renderer_init:89 Electron Security Warning (Insecure Content-Security-Policy) This renderer process has either no Content Security
  Policy set or a policy with "unsafe-eval" enabled. This exposes users of
  this app to unnecessary security risks.

For more information and help, consult
https://electronjs.org/docs/tutorial/security.
This warning will not show up
once the app is packaged.
warnAboutInsecureCSP @ VM240 renderer_init:89

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.