[Python-Dev] (#19562) Asserts in Python stdlib code (datetime.py) (original) (raw)
Pascal Chambon chambon.pascal at wanadoo.fr
Sun Nov 17 14:02:37 CET 2013
- Previous message: [Python-Dev] (#19562) Asserts in Python stdlib code (datetime.py)
- Next message: [Python-Dev] (#19562) Asserts in Python stdlib code (datetime.py)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Le 17/11/2013 12:27, Steven D'Aprano a écrit :
What I would like to know is if people knowingly add costly asserts to performance-critical code, with the intent of disabling them at runtime using -OO. Yes, I have knowingly added costly asserts to code with the intend of disabling them at runtime. Was it performance-critical code? I don't know, that was the point of my earlier rambling -- I could demonstrate a speedup of the individual functions in benchmarks, but nobody spent the effort to determine which functions were performance critical.
Hi,
my 2 cents: asserts have been of a great help in the robustness of our provisioning framework, these are like tests embedded in code, to consistently check what would be VERY hard to test from the outside, from unit-tests.
It makes us gain much time when we develop, because asserts (often used for "method contract checking") immediately break stuffs if we make dumb programming errors, like giving the wrong type of variable as parameter etc. (if you send a string instead of a list of strings to a method, it could take a while before the errors gets noticed, since their behaviour is quite close)
We also add asserts with very expensive operations (like fully checking the proper synchronization of our DBs with the mockups of remote partners, after each provisioning command treated), so that we don't need to call something like that after every line of unit-test we write.
In production, we then make sure we use -O flag to avoid doubling our treatments times and traffic.
regards, Pascal
- Previous message: [Python-Dev] (#19562) Asserts in Python stdlib code (datetime.py)
- Next message: [Python-Dev] (#19562) Asserts in Python stdlib code (datetime.py)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]