Skip to content

dizballanze/django-eraserhead

Repository files navigation

Django Eraserhead

image

image

image

image

Provide hints to optimize database usage by deferring unused fields

image

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`:

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

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:

About

๐Ÿ’‚๐Ÿป Django package that provides hints to optimize database usage by deferring unused fields (and more)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published