Git Product home page Git Product logo

pdq's Introduction

Go Report Card

pdq
- Pretty Damn Quick -
a performance browser that shows profiling metrics in real time





The goal of this project is to design a performance tool that replaces the traditional profiling practice of recording workflows in favor of realtime metrics.

Features

  • Pure Go implementation
  • Cross-platform executables (Windows, Mac, Linux)
  • Displays real-time frontend performance metrics:
    • Frames and GPU
    • Page Load Time:
      • First Contentful Paint
      • Time to Interactive
      • Total Blocking Time
      • Time to First Byte
    • Memory:
      • DOM Nodes
      • Used Memory Percentage

What?

A Browser to replace traditional frontend profiling. This browser is designed to be a development tool that allows users to keep web application performance in mind. It does this by displaying the most important frontend performance metrics in real-time.

Why?

Traditional frontend performance testing usually requires the use of tools like Chrome Developer Tools, Page Speed Insights, Lighthouse, and more. Tools that are used to capture the performance of workflows (i.e., Chrome Developer Tools) usually need the user to record a workflow and sort through a pile of data to find meaningful insights. Tools that are used to capture the performance of page load time (i.e., Lighthouse) usually require an audit of some sort that makes you wait for results after you click the button. Now these tools are great at what they do, but they take away from the development process by having developers open up a separate profiling tool or navigate to another website to copy and paste their web application link. Wouldn't it be easier if related profiling metrics were displayed in real-time in the browser they were already using to develop their web application without any additional steps?

Research behind the tool

Might write an article on this in the future but for now here are some important links with some important frontend performance metrics and guidelines:

How to build for other systems

There is a Windows executable in the repo's build folder, but if you want to use it without running a go command every time you can build it using the following:

env GOOS=target-OS GOARCH=target-architecture go build package-import-path

More details here: https://www.digitalocean.com/community/tutorials/how-to-build-go-executables-for-multiple-platforms-on-ubuntu-16-04

Examples and Screenshots

Browser Overlays

Terminal Output

pdq's People

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

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.