dolfin.common

Functions

list_timings(mpi_comm, timing_types)

timed(task)

Decorator for timing functions.

timing(task)

timings(timing_types)

Classes

Timer([name])

A timer can be used for timing tasks.

class dolfin.common.Timer(name: str = None)[source]

Bases: object

A timer can be used for timing tasks. The basic usage is:

with Timer("Some costly operation"):
    costly_call_1()
    costly_call_2()

or:

with Timer() as t:
    costly_call_1()
    costly_call_2()
    print("Ellapsed time so far: %s" % t.elapsed()[0])

The timer is started when entering context manager and timing ends when exiting it. It is also possible to start and stop a timer explicitly by:

t.start()
t.stop()

and retrieve timing data using:

t.elapsed()

Timings are stored globally (if task name is given) and may be printed using functions timing, timings, list_timings, dump_timings_to_xml, e.g.:

list_timings([TimingType.wall, TimingType.user])
dolfin.common.timed(task: str)[source]

Decorator for timing functions. Usage:

@timed("Do Foo")
def do_foo(*args, **kwargs):

# Do something costly pass

do_foo() list_timings([TimingType.wall, TimingType.user])

t = timing(“Do Foo”, TimingClear.clear) print(“Do foo wall time: %s” % t[1])