It's time to ditch Medium for good! 🌈⚡️

Introducing Devblog by Hashnode. Blog on your domain for FREE. Highly customizable and optimized for developers.

Learn more

Comparison: Node.js, PHP, C, Go, Python and Ruby

I had fun doing performance tests after reading an article which had performance tests for Python.

I wanted to only test web back-end tech, but I still added in a test with C in order to compare everythig else with a low-level language.

Here is the code:


sum = 0
for i in range(100000000):
    sum += i



$sum = 0
for $i in 0..100000000
      $sum += $i



var sum = 0
for (var i = 0; i < 100000000; i++) {
    sum +=i


$sum = 0;
for ($i = 1; $i < 100000000; $i++) {$sum += $i;}    echo $sum + '\n'?>


package main

import "fmt"

func main() {
    sum := 0
    for i := 0; i < 100000000; i++ {
        sum += i


#include <stdio.h>

int main ()
  int a;
  int sum = 0;
  for( a = 0; a < 100000000; a++ )
      sum += a;
  printf("sum: %d\n", sum);
  return 0;



And the winner is... GO !

PS : Go here is 9x better than than C, but with good optimisation flags, C is faster.

Write your comment…


My machine is Core I3, 8GB of RAM, SSD of course :) It took 7 - 8 seconds with Python and 0.02 - 0.12 with Node.js But the most interesting thing is when I change 100 mils to 1 bil, Python consumed the whole memory and then printed "Killed" after about 1 minute, while Node.js returned the result within only 0.853 sec!

Show all replies

Using python's range while using for() in other languages isn't fair. In python either use simple while loop or xrange.

Louis C optimizes the loop into a simple formula, so it does not run the loop.

Reply to this…

Share your programming knowledge and learn from the best developers on Hashnode

Get started

Yes, the Python performance is standing out, isn't it. I heard it has that reputation, i.e. that one shouldn't use it if performance is a big requirement.

Glad to see Node doing so well.

I'm awed at Go, though. I feel its got a lot of momentum these days but I hesitate to spend much time on it and will want to wait and see how the ecosystem is developing. Performance isn't everything ;)

Yes you're right, performance isn't everything, but performance is the better way to innovation :)

Reply to this…

Out of curiosity, what happens if you run the Python version under PyPy?

Also, if you're using Python 2, note that range retuens a list. So, it first generates this HUGE list of numbers, then calculates the sum. Try switching to xrange, or, better yet:


Reply to this…

You can write more elegant Ruby code (and it should be faster too).


sum = 0
(1..100000000).each { |i| sum += i } 
puts sum

Thanks :)

Reply to this…

Python >11 seconds :O

Show all replies

for this calculation it is if you actually write the correct code which is:

print sum(xrange(100000000))

Reply to this…

Load more responses