As Vijay said, most of the performance of a web app (in any framework) is
database access. With django, you can use the Django Debug Toolbar
<https://github.com/django-debug-toolbar/django-debug-toolbar#django-debug-toolbar>
or
the db.connection.queries
<https://docs.djangoproject.com/en/1.7/faq/models/#how-can-i-see-the-raw-sql-queries-django-is-running>
object to find out where those queries are being made and then use the
select-related
<https://docs.djangoproject.com/en/1.7/ref/models/querysets/#select-related>
and
prefetch-related
<https://docs.djangoproject.com/en/1.7/ref/models/querysets/#prefetch-related>
features
of the ORM to reduce them to a minimum.

It is also worth noting that for many applications, the speed at which a
programmer is able to work effectively matters more for the success of the
project than the speed of the language. Of course, the two aren't
completely unrelated; If your unit test suite runs slowly, that will slow
down your development workflow.

If you have a need to do high-performance analysis of really large scale
data sets, python has a variety of tools like blaze
<http://continuum.io/blog/blaze-datasets>, pandas
<http://pandas.pydata.org/>, and numba <http://numba.pydata.org/> and is
pretty widely used in scientific computing for this reason.

On Tue, Feb 24, 2015 at 5:59 PM, Vijay Khemlani <[email protected]> wrote:

> It's true that the Global Interpreter Lock will prevent threads from a
> single process from running concurrently, but your server (uWSGI, gunicorn,
> etc) will spawn multiple process that don't conflict with the GIL.
>
> Also, if you need some form of multiprocessing celery is a good choice,
> and one that also doesn't collide with the GIL as it is a different process.
>
> Finally, web apps are mostly limited by I/O (database access), so the
> actual stack used usually is not that important unless you are scaling a
> lot (StackOverflow-level "a lot").
>
> I've worked with both Django and ASP.NET MVC (although an older version)
> and even though ASP.NET MVC is amazing in the level of the IDE
> (VisualStudio) and query language (Entity Framework / LINQ) it's still a
> little cumbersome for my taste (and I also prefer Linux enviroments...)
>
> On Tue, Feb 24, 2015 at 8:52 PM, Alex Mandel <[email protected]>
> wrote:
>
>> On 02/24/2015 03:30 PM, Benj wrote:
>> > Hi,
>> > i'm going to invest lots of time and energy in various web projects
>> (mostly
>> > community web sites), and want to pick up a language / framework and
>> invest
>> > heavily on it.
>> > I've spent a lot of time evaluating the various options, and narrowed my
>> > choice to 2 stacks: C sharp asp.net  MVC or Python / Django.
>> >
>> > I'm more attracted to Python / Django combo, because of the Python
>> > language, and high level framework Django. I really want to use these.
>> > My only concern is speed. I read that Python can't run concurrent
>> tasks, is
>> > this true ? So a multi-processor with hyperthreads won't benefit the
>> stack
>> > and even slow it down ?
>> > I have no clue how this translates in reality, but should I expect
>> > noticable performance difference on a same server, shall I use Python /
>> > Django than if I had C Sharp Asp.net ?
>> > I don't want to invest lots of time and efforts only to discover in the
>> end
>> > that the site is slow.
>> > You that have real world experiences with running sites, what are your
>> > conclusions ?
>> >
>> >
>> > I expect sites to be medium traffic: could be handled by a good
>> dedicated
>> > server or average cloud ressources.
>> >
>> > Benj
>> >
>>
>> Use a good WSGI like uwsgi or gunicorn and don't use sqlite as your db.
>> Those WSGI containers are threaded. Don't confuse running python
>> directly which is different (and there are ways to use multicores even
>> then).
>>
>> Plenty of examples of big websites running django out there.
>>
>> http://blog.disqus.com/post/62187806135/scaling-django-to-8-billion-page-views
>>
>> Enjoy,
>> Alex
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Django users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/django-users.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/django-users/54ED0EB9.2020505%40wildintellect.com
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/CALn3ei0T%2B7HokGppre4z7JhPc6P1%3DkLW%2BJ2o1vAtG0v5DD8MtA%40mail.gmail.com
> <https://groups.google.com/d/msgid/django-users/CALn3ei0T%2B7HokGppre4z7JhPc6P1%3DkLW%2BJ2o1vAtG0v5DD8MtA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CA%2By5TLYOihmvq1hUqETnWwY4vBaBFmttsm_ZkKoUzctFFg7JVQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to