Using Cython with Django. Does it make sense?

fear_matrix picture fear_matrix · Aug 21, 2010 · Viewed 15k times · Source

Is it possible to optimize speed of a mission critical application developed in Django with Cython?

Recently I have read on the internet, that Cython can turn a Python code to C like speed. Is this possible with Django?

Answer

S.Lott picture S.Lott · Aug 22, 2010

Is it possible to optimize speed of a mission critical application developed in Django with Cython

It's doubtful.

Most of a web application response time is the non-HTML elements that must be downloaded separately. The usual rule of thumb is 8 static files per HTML page. (.CSS, .JS, images, etc.)

Since none of that static content comes from Django, most of your web application's time-line is Apache (or Nginx or some other server software outside Django).

When looking at just the time to produce the HTML, you'll find that most of the time is spent waiting for the database (even if it's in-memory SQLite, you'll see that the database tends to dominate the timeline)

When you're through making Apache and the database go fast, then -- and only then -- you can consider the Python elements.

Bottom Line. Don't waste any of your time on making Django and Python go faster.