Is Python faster and lighter than C++?

Alex picture Alex · Apr 29, 2009 · Viewed 190.5k times · Source

I've always thought that Python's advantages are code readibility and development speed, but time and memory usage were not as good as those of C++.

These stats struck me really hard.

What does your experience tell you about Python vs C++ time and memory usage?

Answer

moinudin picture moinudin · Apr 29, 2009

I think you're reading those stats incorrectly. They show that Python is up to about 400 times slower than C++ and with the exception of a single case, Python is more of a memory hog. When it comes to source size though, Python wins flat out.

My experiences with Python show the same definite trend that Python is on the order of between 10 and 100 times slower than C++ when doing any serious number crunching. There are many reasons for this, the major ones being: a) Python is interpreted, while C++ is compiled; b) Python has no primitives, everything including the builtin types (int, float, etc.) are objects; c) a Python list can hold objects of different type, so each entry has to store additional data about its type. These all severely hinder both runtime and memory consumption.

This is no reason to ignore Python though. A lot of software doesn't require much time or memory even with the 100 time slowness factor. Development cost is where Python wins with the simple and concise style. This improvement on development cost often outweighs the cost of additional cpu and memory resources. When it doesn't, however, then C++ wins.