Skip to main content

Useful tools when dealing with clocks for timing and benchmarking. Will use a different method for retrieving accurate, monotonic clock values (see source for detail).

Tested on Python 2.7 and 3.3+. The latter is recommended because the time module contains much better access to OS timing functions.

Examples

Simple framerate-limiter:

>>> import ticking
>>> for frame, t in ticking.Clock(0.5):
...   print(frame, t)
...
1 0.5
2 1.0
3 1.5
...

After dropping a frame, the clock is aligned again:

>>> import time
>>> for frame, t in ticking.Clock(0.5):
...   print(frame, t)
...   time.sleep(0.8)  # drop a frame
...
1 0.5
3 1.5
5 2.5

Measuring time:

>>> with ticking.Stopwatch('Demonstration') as sw:
...   time.sleep(1.3)
...
>>> sw.total
1.3013252970049507
>>> print(sw)
Demonstration: took 1.30s

Quick in-program profiling:

>>> with ticking.profiled('testprofile.prof'):
...   time.sleep(1.0)
...
>>> import pstats
>>> pstats.Stats('testprofile.prof').print_stats()
Wed Jun  8 11:21:38 2016    testprofile.prof

         5 function calls in 1.001 seconds

   Random listing order was used

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
        1    1.001    1.001    1.001    1.001 {built-in method sleep}
        1    0.000    0.000    0.000    0.000 /usr/lib/python3.4/contextlib.py:63(__exit__)
        1    0.000    0.000    0.000    0.000 {built-in method next}
        1    0.000    0.000    0.000    0.000 /home/marc/Documents/github.com/mbr/ticking/ticking.py:137(profiled)

Metadata

Release files for ticking 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ticking 0.4.0
File Size Uploaded
ticking-0.4.0.tar.gz 4.0 kB Details

Release files / ticking-0.4.0.tar.gz

Download URL ticking-0.4.0.tar.gz
Size 4.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c5c1a72a41e2afc23225dfad6aaba8eacc3d1269cc6d40a676fb7192022eac1a
BLAKE2b-256 checksum
How to use checksums
7dcbbba999ddc712c36f3cdba035a076d32da2e935afd709bee35228c5bd5550
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.4.0 This release

1 release file

0.3.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page