Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.7k
Closed
Description
Bug report
Bug description:
datetime.replace() is very slow when called with keyword arguments. For example, with python 3.13 from main on my laptop
$python -m timeit -s"from datetime import datetime; dt = datetime.now()""dt.replace(microsecond=0)"500000 loops, best of 5: 501 nsec per loop
For comparison,
$python -m timeit -s"from datetime import datetime""datetime.now()"2000000 loops, best of 5: 150 nsec per loop$python -m timeit -s"from datetime import datetime""datetime(2020, 1, 1, 12, 34, 56, 123456)"2000000 loops, best of 5: 119 nsec per loop
So calling replace() is over 4x slower than constructing a new datetime from components and over 3x slower than now(), which makes a system call.
CPython versions tested on:
3.9, 3.10, 3.13
Operating systems tested on:
Linux