Hi, thanks for your comments, I installed django-debug toolbar and I can confirm I'm doing similar queries from both django and play. The query I do with hibernate in play should be slower since I'm doing a left outer join while django do an inner join, since the field on which I join cannot be null.
I tryed gunicorn but it gives similar performance to uwsgi, I'm testing on my latptop (1 core). Maybe there is something wrong in my template but it is basically a base.html and then index.html that extends base.html, additinally I have some "include <other.html>" where other.html is a small fragment of code On 6 Lug, 01:07, Jonas Geiregat <jo...@geiregat.org> wrote: > We all know python is slower in raw execution speed than it's brother Java > but I can't imagine it to be _that_ slow. > > Maybe there's something wrong with the queries you perform. Django's ORM is > know for it's 'hidden execution' of queries. Some more insight in your > querying code might be useful. > > > > > > > > > > > Hi, > > > I did a small test app that basically render a web page and do 3 > > queries to the database (these queries are needed to fetch some data > > displayed on the web page). I deployed this app with nginx+uswgi > > > here is the relevant nginx conf: > > > location / { > > uwsgi_pass 127.0.0.1:49152; > > include uwsgi_params; > > } > > > I configured nginx to serve the static files too: > > > location /media { > > root <root path for media>; > > autoindex on; > > } > > > I launch uswgi as follow: > > > uwsgi --chdir=<path> -- > > module='django.core.handlers.wsgi:WSGIHandler()' --env > > DJANGO_SETTINGS_MODULE=myapp.settings --master --pidfile=/tmp/project- > > master.pid --socket=127.0.0.1:49152 --max-requests=5000 --process=5 > > > then I benchmarked the app with ab: > > > ab -n 1000 -c 4http://127.0.0.1:80/ > > This is ApacheBench, Version 2.3 <$Revision: 655654 $> > > Copyright 1996 Adam Twiss, Zeus Technology Ltd,http://www.zeustech.net/ > > Licensed to The Apache Software Foundation,http://www.apache.org/ > > > Benchmarking 127.0.0.1 (be patient) > > Completed 100 requests > > Completed 200 requests > > Completed 300 requests > > Completed 400 requests > > Completed 500 requests > > Completed 600 requests > > Completed 700 requests > > Completed 800 requests > > Completed 900 requests > > Completed 1000 requests > > Finished 1000 requests > > > Server Software: nginx > > Server Hostname: 127.0.0.1 > > Server Port: 80 > > > Document Path: / > > Document Length: 24293 bytes > > > Concurrency Level: 4 > > Time taken for tests: 28.914 seconds > > Complete requests: 1000 > > Failed requests: 0 > > Write errors: 0 > > Total transferred: 24423000 bytes > > HTML transferred: 24293000 bytes > > Requests per second: 34.59 [#/sec] (mean) > > Time per request: 115.654 [ms] (mean) > > Time per request: 28.914 [ms] (mean, across all concurrent > > requests) > > Transfer rate: 824.89 [Kbytes/sec] received > > > Connection Times (ms) > > min mean[+/-sd] median max > > Connect: 0 0 0.1 0 4 > > Processing: 46 115 42.6 110 636 > > Waiting: 46 115 42.5 109 636 > > Total: 46 116 42.6 110 636 > > > Percentage of the requests served within a certain time (ms) > > 50% 110 > > 66% 121 > > 75% 131 > > 80% 139 > > 90% 161 > > 95% 177 > > 98% 203 > > 99% 220 > > 100% 636 (longest request) > > > now I implemented the same app using playframework, a java based > > framework and benchmarked with ab again: > > > ab -n 1000 -c 4http://127.0.0.1:9000/ > > This is ApacheBench, Version 2.3 <$Revision: 655654 $> > > Copyright 1996 Adam Twiss, Zeus Technology Ltd,http://www.zeustech.net/ > > Licensed to The Apache Software Foundation,http://www.apache.org/ > > > Benchmarking 127.0.0.1 (be patient) > > Completed 100 requests > > Completed 200 requests > > Completed 300 requests > > Completed 400 requests > > Completed 500 requests > > Completed 600 requests > > Completed 700 requests > > Completed 800 requests > > Completed 900 requests > > Completed 1000 requests > > Finished 1000 requests > > > Server Software: Play! > > Server Hostname: 127.0.0.1 > > Server Port: 9000 > > > Document Path: / > > Document Length: 19614 bytes > > > Concurrency Level: 4 > > Time taken for tests: 4.436 seconds > > Complete requests: 1000 > > Failed requests: 0 > > Write errors: 0 > > Total transferred: 19961000 bytes > > HTML transferred: 19614000 bytes > > Requests per second: 225.44 [#/sec] (mean) > > Time per request: 17.743 [ms] (mean) > > Time per request: 4.436 [ms] (mean, across all concurrent > > requests) > > Transfer rate: 4394.59 [Kbytes/sec] received > > > Connection Times (ms) > > min mean[+/-sd] median max > > Connect: 0 0 0.0 0 1 > > Processing: 7 18 6.6 16 47 > > Waiting: 6 17 6.6 16 47 > > Total: 7 18 6.6 16 47 > > > Percentage of the requests served within a certain time (ms) > > 50% 16 > > 66% 19 > > 75% 22 > > 80% 23 > > 90% 27 > > 95% 30 > > 98% 34 > > 99% 38 > > 100% 47 (longest request) > > > so play is outperforming django! obviously django is not in debug mode > > ecc..., is there something wrong in my test setup (I already tried to > > adjust the uwsgi launch line I tryed more process or 1 process with > > threads ecc with no relevant improvement) or django/python is simply > > much slower than java? I tried to run play behind nginx proxy too: the > > results are pratically identical. Note the response time too: the > > slowest play response is 47 ms, the fastest django one is 110 ms, > > > any suggestion to improve performance is appreciated, > > > thanks in advance, > > drakkan > > > -- > > You received this message because you are subscribed to the Google Groups > > "Django users" group. > > To post to this group, send email to django-users@googlegroups.com. > > To unsubscribe from this group, send email to > > django-users+unsubscr...@googlegroups.com. > > For more options, visit this group > > athttp://groups.google.com/group/django-users?hl=en. > > Jonas Geiregat > jo...@geiregat.org -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.