All Projects → DataDog → Go Profiler Notes

DataDog / Go Profiler Notes

Licence: cc-by-sa-4.0
felixge's notes on the various go profiling methods that are available.

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Go Profiler Notes

Training Material
A collection of code examples as well as presentations for training purposes
Stars: ✭ 85 (-83.81%)
Mutual labels:  jupyter-notebook, profiling
Nlp profiler
A simple NLP library allows profiling datasets with one or more text columns. When given a dataset and a column name containing text data, NLP Profiler will return either high-level insights or low-level/granular statistical information about the text in that column.
Stars: ✭ 181 (-65.52%)
Mutual labels:  jupyter-notebook, profiling
Mongood
A MongoDB GUI with Fluent Design
Stars: ✭ 540 (+2.86%)
Mutual labels:  jupyter-notebook, profiling
Pynotes
Python exercises to practice skills
Stars: ✭ 543 (+3.43%)
Mutual labels:  jupyter-notebook
Pierian Data Complete Python 3 Bootcamp
Stars: ✭ 544 (+3.62%)
Mutual labels:  jupyter-notebook
Handson Ml
A series of Jupyter notebooks that walk you through the fundamentals of Machine Learning and Deep Learning in python using Scikit-Learn and TensorFlow.
Stars: ✭ 23,798 (+4432.95%)
Mutual labels:  jupyter-notebook
Neural Collage
Collaging on Internal Representations: An Intuitive Approach for Semantic Transfiguration
Stars: ✭ 549 (+4.57%)
Mutual labels:  jupyter-notebook
Tensorrt
TensorFlow/TensorRT integration
Stars: ✭ 543 (+3.43%)
Mutual labels:  jupyter-notebook
Bandits
Python library for Multi-Armed Bandits
Stars: ✭ 547 (+4.19%)
Mutual labels:  jupyter-notebook
Austin
Python frame stack sampler for CPython
Stars: ✭ 547 (+4.19%)
Mutual labels:  profiling
Flowtron
Flowtron is an auto-regressive flow-based generative network for text to speech synthesis with control over speech variation and style transfer
Stars: ✭ 546 (+4%)
Mutual labels:  jupyter-notebook
Hate Speech And Offensive Language
Repository for the paper "Automated Hate Speech Detection and the Problem of Offensive Language", ICWSM 2017
Stars: ✭ 543 (+3.43%)
Mutual labels:  jupyter-notebook
Probabilistic Programming And Bayesian Methods For Hackers
aka "Bayesian Methods for Hackers": An introduction to Bayesian methods + probabilistic programming with a computation/understanding-first, mathematics-second point of view. All in pure Python ;)
Stars: ✭ 23,912 (+4454.67%)
Mutual labels:  jupyter-notebook
Video Classification
Tutorial for video classification/ action recognition using 3D CNN/ CNN+RNN on UCF101
Stars: ✭ 543 (+3.43%)
Mutual labels:  jupyter-notebook
Pythoncode Tutorials
The Python Code Tutorials
Stars: ✭ 544 (+3.62%)
Mutual labels:  jupyter-notebook
Chinese models for spacy
SpaCy 中文模型 | Models for SpaCy that support Chinese
Stars: ✭ 543 (+3.43%)
Mutual labels:  jupyter-notebook
Fuzzingbook
Project page for "The Fuzzing Book"
Stars: ✭ 549 (+4.57%)
Mutual labels:  jupyter-notebook
Ember
Stars: ✭ 545 (+3.81%)
Mutual labels:  jupyter-notebook
Sentiment analysis fine grain
Multi-label Classification with BERT; Fine Grained Sentiment Analysis from AI challenger
Stars: ✭ 546 (+4%)
Mutual labels:  jupyter-notebook
Machine Learning Notes
My continuously updated Machine Learning, Probabilistic Models and Deep Learning notes and demos (2000+ slides) 我不间断更新的机器学习,概率模型和深度学习的讲义(2000+页)和视频链接
Stars: ✭ 5,390 (+926.67%)
Mutual labels:  jupyter-notebook

go-profiler-notes

Hey there 👋🏻, I'm felixge and I've just started a new job at Datadog to work on Continuous Profiling for Go.

I found that Go has a lot of profilers and there are many tools for looking at the data, but that there is very little information on what any of it means. So in order to make sure that I know what I'm talking about, I've started to research the existing profilers and how they work. This repository is my attempt to summarize my findings in the hope that it might be useful to others.

  • pprof tool & format: Describes the pprof tool and the binary data format for storing profiles.
  • Goroutine Profiling: Allows you to get a list of all active goroutines and what they're currently doing.
  • Block Profiling: Understand how much time your code spends waiting on channels and locks.
  • CPU Profiling (🚧 coming soon!)
  • Heap Profiling (🚧 coming soon!)
  • Mutex Profiling (🚧 coming soon!)
  • Wallclock Profiling (🚧 coming soon!)

External Links

  • Go Docs
    • Diagnostics: Has a very good overview over the available profiling and tracing facilities but doesn't go into a lot of depth.
    • runtime/pprof: Lists the available profiles and has a little more explanation about what kind of data they produce.
    • runtime: Has documentation on the various control knobs and pprof facilities, e.g. MemProfileRate.
    • net/http/pprof: Not a lot of docs, but diving into the code from there shows how the various profilers can be started/stopped on demand.
  • JDB
    • Profiler labels in Go: An introduction to using pprof labels and how they allow you to add additional context to your profiles.
    • Custom pprof profiles: Example for using custom profiles, shows tracking open/close events of a blob store and how to figure out how many blobs are open at a given time.
    • Mutex profile: Brief intro to the mutex profile.
    • Using Instruments to profile Go programs: How to use the macOS Instruments app (I think it's built on dtrace) to profile Go programs. Not clear what the benfits are, if any.
  • Profiling Go programs with pprof by Julia Evans: A nice tour with a focus on heap profiling and the pprof output format.

Got great links to recommend? Open an issue or PR, I'd happy to add your suggestions : ).

License

The markdown files in this repository are licensed under the CC BY-SA 4.0 license.

Disclaimers

I'm felixge and work at Datadog on Continuous Profiling for Go. You should check it out. We're also hiring : ).

The information on this page is believed to be correct, but no warranty is provided. Feedback is welcome!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].