Skip to main content

Provide hints to optimize database usage by deferring unused fields

Project description

=============================
Django Eraserhead
=============================

.. image:: https://badge.fury.io/py/django-eraserhead.svg
:target: https://badge.fury.io/py/django-eraserhead

.. image:: https://travis-ci.org/dizballanze/django-eraserhead.svg?branch=master
:target: https://travis-ci.org/dizballanze/django-eraserhead

.. image:: https://codecov.io/gh/dizballanze/django-eraserhead/branch/master/graph/badge.svg
:target: https://codecov.io/gh/dizballanze/django-eraserhead

Provide hints to optimize database usage by deferring unused fields

.. image:: https://github.com/dizballanze/django-eraserhead/raw/master/eraserhead.jpg

*WARNING* use this package only in dev environment!

Documentation
-------------

Requirements
-----------

* Django 1.9+
* Python 2.7, 3.4+

Quickstart
----------

Install Django Eraserhead::

pip install django-eraserhead

Add it to your `INSTALLED_APPS`:

.. code-block:: python

INSTALLED_APPS = (
...
'eraserhead.apps.EraserheadConfig',
...
)

ERASERHEAD_ENABLED = True
ERASERHEAD_TRACEBACK_BASE_PATH = BASE_DIR


Settings:

* `ERASERHEAD_ENABLED` - enable/disable Django Eraserhead
* `ERASERHEAD_TRACEBACK_BASE_PATH` - set base path to filter tracebacks. Set to `None` to display full traceback.

Features
--------

.. image:: https://github.com/dizballanze/django-eraserhead/raw/master/screenshot.png

Django Eraserhead monitors:

* querysets/models fields usage (used and unused fields) with considering deferred fields
* count of instances created for each queryset
* corresponding model of each queryset
* traceback for each queryset to easily find corresponding code
* calculate memory consumption of unused fields

Based on fields usage Django Eraserhead suggests optimizations for each queryset.


TODO
-----

* decorator and/or context processor for partial stats collecting
* detect deferred fields loading
* auto deferring fields based on usage
* display deferred fields

Running Tests
-------------

::

source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install tox
(myenv) $ tox

Credits
-------

Tools used in rendering this package:

* Cookiecutter_
* `cookiecutter-djangopackage`_

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`cookiecutter-djangopackage`: https://github.com/pydanny/cookiecutter-djangopackage

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-eraserhead-0.1.5.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

django_eraserhead-0.1.5-py2.py3-none-any.whl (7.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file django-eraserhead-0.1.5.tar.gz.

File metadata

File hashes

Hashes for django-eraserhead-0.1.5.tar.gz
Algorithm Hash digest
SHA256 e936aaedfb54b6a200106aa0ac5380a73d3a9a3683d3d0d593082a1bdec6477e
MD5 3eeafe539b3048fbf8c19d70f1a2e741
BLAKE2b-256 72b7a61f3b631c451b32c4f65d059d818885a33adf57135e907701cbe3de28ee

See more details on using hashes here.

File details

Details for the file django_eraserhead-0.1.5-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for django_eraserhead-0.1.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3b3fca02433526e8e4244bda785eeddbdda9945f335ceae42bf8a1a90701ccff
MD5 9071b7abed450775aa96d6ea93aa9c97
BLAKE2b-256 f1886646e6fe248283a74ad94f76336104f73503aa65ca1ec3556bd0dcdf4b0f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page