# Profiling scripts

Sometimes, some functions of your script are taking up time and you would like to optimize those. We are not speaking here about the encoding of streams, which usually takes the vast majority of the spent computing power, but of functions written directly in Liquidsoap. In order to understand those better, Liquidsoap has a profiler which records all the function calls. It can be enabled with

    profiler.enable()

(or by passing the `--profile` commandline flag of Liquidsoap) and the statistics can be obtained with

    print(profiler.stats.string())

It will output something like

    function              self              total             calls

    +                     0.359139919281    0.359139919281    302000
    list.add              0.324638843536    442.74707818      202000
    if                    0.242718935013    442.951756954     102002
    list.cons             0.230906486511    442.277146816     101000

where each lines consists of a function, the time spent in the functions, the time spent in the function and the functions it has called and the number of calls to the function.