Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using Cython with Django. Does it make sense?

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?

like image 756
fear_matrix Avatar asked Aug 21 '10 21:08

fear_matrix


People also ask

Can we use Cython for Django?

Yes, we have done it.

Does Cython speed up Python?

You can directly copy your existing Python code into a Cython file and then compile it to boost performance.

Is Cython slow?

Calling the Cython function is faster than calling a Python function call, it's true. But even 30 nanoseconds is rather slow by the standards of compiled languages: for comparison, a C function called by another C function might take only 3 nanoseconds, or much less if it gets inlined.


1 Answers

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.

like image 58
S.Lott Avatar answered Oct 12 '22 09:10

S.Lott