Skip to content
This repository has been archived by the owner on Feb 17, 2022. It is now read-only.

tellapart/gevent_request_profiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

=======================
Gevent Request Profiler
=======================

The Gevent Request Profiler enables the discovery of blocking/non-yielding
code in request-handling servers implemented with the Gevent networking library
(http://www.gevent.org/).

Culprits may include blocking I/O (e.g., file I/O, native I/O, or non-
monkey-patched socket requests) and CPU-intensive code.

Unlike the cProfile module, it is not a deterministic profiler that precisely
measures the run-times of all function calls. Rather, it identifies
'execution spans', intervals during which greenlets do not cooperatively yield
to other greenlets, for a set fraction of requests.

The profiler works with gevent.wsgi and gevent.pywsgi servers out of the box,
but it's straightforward to add support for other server types. See the
Profiler doc comment in gevent_profiler.py for details.

Developed by TellApart (http://www.tellapart.com) and licensed under the
Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0).

============
Installation
============

To install, run:

  sudo python setup.py install

===============
Getting Started
===============

The best way to get a feel for the profiler is to bring up a server, make a
few requests, and watch the greenlet transitions happen.

You can get started by running:

  examples/wsgi_example.py

Toggle between gevent.wsgi and gevent.pywsgi at the top of the script.

About

The Gevent Request Profiler enables the discovery of blocking/non-yielding code in request-handling servers implemented with the Gevent networking library.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages