DEV Community

Vishwas Mahadev
Vishwas Mahadev

Posted on

Help me with points to be considered while coding to avoid execution overhead in Python

Top comments (8)

Collapse
 
veky profile image
Veky

If you're really concerned about it, the answer is simple: don't write in Python. There are many languages that are better suited to "avoiding execution overhead". It was never a design goal for Python, it was designed with completely different goals in mind.

Collapse
 
vishwasmahadev profile image
Vishwas Mahadev

I am willing to know, could you enlighten me with those goals please

Collapse
 
veky profile image
Veky

In a nutshell: Python was designed to be executable pseudocode. That is, a tool for explaining algorithms. You don't "avoid execution overhead" in pseudocode, do you? :-) What you can do, is study the complexity of algorithms, but that's completely orthogonal.

Collapse
 
rhymes profile image
rhymes

Do you have any specific questions?

The general rule is write the code first, optimize later.

Most suggestions are Python agnostic: buffer content, remember to dispose resources, don't leave files open and so on.

Collapse
 
vishwasmahadev profile image
Vishwas Mahadev • Edited

Yea I asked for, kind of Key Points to be considered and your answer is pretty close, would like to know such stuff. But specifically on Python, like Lambdas are efficient comparing to Functions/Methods(for one liners I'm saying about).

So if you could share me something like this that would be greatly helpful. Hope you understand :)

Collapse
 
rhymes profile image
rhymes

A possible one is to use lists to join long strings instead of creating many strings objects but it makes a difference only if you have massive objects or massive loops.

Example:

v = ["a", "b", "c"]
s = ““.join(v)

Instead of

v = "a"
v += "b"
v += "c"

But this doesn't really matter if you have a few strings, that's why the strategy is code first, optimizations later.

You can help yourself using tools like flake8 plus github.com/PyCQA/flake8-bugbear/bl... or a code formatter like github.com/ambv/black (clear code makes it easier to find issues).

Regarding functions and lambda there's no difference...

Maybe Google for python performance tips but I think you're better off learning how to write good, readable Python first.

Thread Thread
 
vishwasmahadev profile image
Vishwas Mahadev

Thanks for your suggestion and I will check them for sure..

Collapse
 
vishwasmahadev profile image
Vishwas Mahadev

If there's a post already please lemme know:)