All Projects → icoxfog417 → pyfbi

icoxfog417 / pyfbi

Licence: MIT license
pyFBI enables a necessary and sufficient profiling and visualization

Programming Languages

javascript
184084 projects - #8 most used programming language
python
139335 projects - #7 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to pyfbi

Simple Pt
Simple Intel CPU processor tracing on Linux
Stars: ✭ 232 (+728.57%)
Mutual labels:  performance-analysis
performance-dashboard
Magento 2 Performance Dashboard
Stars: ✭ 60 (+114.29%)
Mutual labels:  performance-analysis
neurtu
Interactive parametric benchmarks in Python
Stars: ✭ 15 (-46.43%)
Mutual labels:  performance-analysis
ember-appmetrics
Ember library used to measure various metrics in your Ember app with ultra simple APIs.
Stars: ✭ 16 (-42.86%)
Mutual labels:  performance-analysis
naeval
Comparing quality and performance of NLP systems for Russian language
Stars: ✭ 38 (+35.71%)
Mutual labels:  performance-analysis
snippet-timekeeper
An android library to measure code execution time. No need to remove the measurement code, automatically becomes no-op in the release variants. Does not compromise with the code readability and comes with features that enhance the developer experience.
Stars: ✭ 70 (+150%)
Mutual labels:  performance-analysis
Droidtelescope
DroidTelescope(DT),Android端App性能监控框架
Stars: ✭ 231 (+725%)
Mutual labels:  performance-analysis
financial-asset-comparison-tool
R Shiny app to compare the relative performance of cryptos and equities.
Stars: ✭ 97 (+246.43%)
Mutual labels:  performance-analysis
performance-node
Performance for Node.js
Stars: ✭ 17 (-39.29%)
Mutual labels:  performance-analysis
PerfAvore
Rule based performance analysis and monitoring tool for dotnet written in F#.
Stars: ✭ 12 (-57.14%)
Mutual labels:  performance-analysis
powa-archivist
powa-archivist: the powa PostgreSQL extension
Stars: ✭ 48 (+71.43%)
Mutual labels:  performance-analysis
lighthouse-chromium-alpine-docker
Run Google's Lighthouse headless in the background
Stars: ✭ 16 (-42.86%)
Mutual labels:  performance-analysis
perf counter
A dedicated performance counter for Cortex-M systick. It shares the SysTick with users' original SysTick function without interfere it. This library will bring new functionalities, such as performance counter, delay_us and clock() service defined in time.h
Stars: ✭ 197 (+603.57%)
Mutual labels:  performance-analysis
doc
QuickPerf documentation: https://github.com/quick-perf/doc/wiki/QuickPerf
Stars: ✭ 22 (-21.43%)
Mutual labels:  performance-analysis
aws-python-utilities
Python utilities for AWS related tasks.
Stars: ✭ 34 (+21.43%)
Mutual labels:  performance-analysis
Quickperf
QuickPerf is a testing library for Java to quickly evaluate and improve some performance-related properties
Stars: ✭ 231 (+725%)
Mutual labels:  performance-analysis
gtmetrix-net
GTmetrix .Net client
Stars: ✭ 16 (-42.86%)
Mutual labels:  performance-analysis
perf-tools
A collection of performance analysis tools, recipes, handy scripts, microbenchmarks & more
Stars: ✭ 61 (+117.86%)
Mutual labels:  performance-analysis
build-stats
🏆 get the build stats for pipelines 🏆
Stars: ✭ 79 (+182.14%)
Mutual labels:  performance-analysis
Probe
Probe is a web GUI application with for Hyperledger Fabric maintainer, user, research to find the best block config logic for specific chain-code.
Stars: ✭ 29 (+3.57%)
Mutual labels:  performance-analysis

pyFBI

pyFBI enables "as much as needed" profiling by decorator.

import time
import pyfbi


@pyfbi.target
def func1():
    time.sleep(1)

def func2():
    time.sleep(2)

@pyfbi.target
def func3():
    time.sleep(3)


with pyfbi.watch():
    [f() for f in (func1, func2, func3)]
pyfbi.show()

Then only "target" function (func1 & func3) is profiled.

         6 function calls in 4.003 seconds

   Random listing order was used

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        2    4.003    2.002    4.003    2.002 {built-in method time.sleep}
        1    0.000    0.000    1.003    1.003 tests/demo.py:8(func1)
        2    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
        1    0.000    0.000    3.000    3.000 tests/demo.py:15(func3)

You can save the result to the file.

pyfbi.dump("your_stat_file_path")

If you want to watch the all functions, set global_watch=True.

with pyfbi.watch(global_watch=True):
    [f() for f in (func1, func2, func3)]
pyfbi.show()
         17 function calls in 6.007 seconds

   Random listing order was used

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    0.000    0.000 {built-in method builtins.next}
        3    6.007    2.002    6.007    2.002 {built-in method time.sleep}
        1    0.000    0.000    1.004    1.004 tests/demo.py:8(func1)
        1    0.000    0.000    2.002    2.002 tests/demo.py:12(func2)
        1    0.000    0.000    3.000    3.000 tests/demo.py:15(func3)
        1    0.000    0.000    6.007    6.007 tests/demo.py:26(<listcomp>)
   ...

Installation

pip install pyfbi

Special Features

Scheduled Stat

The following script store the stat for each 5 seconds.

import pyfbi

(set target to your function)

stat_dir = os.path.join(os.path.dirname(__file__), "stats")
# You can use global_watch=True if you want to profile all functions.
with pyfbi.watch_periodic(seconds=5, stat_dir=stat_dir):
    for f in [func1, func2, func2, func3, func1, func1]:
        f()

Visualization

If you install the pyFBI, you can use pyfbi_viz command to visualize the stats.

pyfbi_viz --stat_dir=stat_dir

(stat_dir is the directory that stat file is stored)

pyfbi_viz_1.png

pyfbi_viz_2.png

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].