3 ms·
While this article discusses some pros/cons of Go for implementing a web server, I'm surprised there's absolutely no mention of how fast his working (?) server
by DocSavage 15y ago
While this article discusses some pros/cons of Go for implementing a web server, I'm surprised there's absolutely no mention of how fast his working (?) server runs or the memory footprint relative to python.
- briancurtin 15y agoWhen I read "In addition, threading in Python performs poorly due to GIL." and then just leaving it at that, I wasn't expecting any sort of performance or resource usage investigation.
- alec 15y agoWhen I read "I would seriously consider using Go for writing server side of web applications as it provides a right balance between speed and memory efficiency of the running code", I was expecting at least some number to back it up.
- sc68cal 15y agoAgreed. If we want to nitpick further regarding the GIL - Python boosters could state that the GIL is just a implementation detail of cPython that is not a problem in other implementations, like Jython or IronPython.
- ch0wn 15y ago"don’t suffer Python’s terrible per-object overhead" Yet another example of where I'd love to see some numbers.
- kragen 15y agokragen@inexorable:~$ python Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39) [GCC 4.4.5] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import os, commands >>> print commands.getoutput('ps u %s' % os.getpid()) USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND kragen 20823 0.3 0.1 9636 3780 pts/4 S+ 14:00 0:00 python >>> x = [{} for ii in range(1000*1000)] >>> print commands.getoutput('ps u %s' % os.getpid()) USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND kragen 20823 10.8 7.7 168176 159756 pts/4 S+ 14:00 0:02 python >>> (159756-3780)*1024/(1000.0*1000) 159.719424 So the baseline is about 160 bytes per dict. Objects, by default, are built on dicts. Objects with __slots__ can be a little more efficient.
- uriel 15y agoYou can look at the memory usage here: http://shootout.alioth.debian.org/u64/benchmark.php?test=all&lang=go&lang2=python3 http://shootout.alioth.debian.org/u64/benchmark.php?test=all...
- kjksf 15y agoIt's a fair point. However, when I did that port, almost a year ago, I did it to understand how Go compares to Python in terms of writing the code. The result was fast enough, I didn't bother benchmarking. Plus, whatever the results were then, Go's compiler and runtime has improved in the past year, so the data would no longer be indicative of current performance. And the compiler is still being improved.