Aprendendo: os.clock()

164 views
Skip to first unread message

fecik

unread,
Mar 20, 2019, 10:58:46 PM3/20/19
to Lua BR
Aprendendo: os.clock()

A função os.clock() retorna o acúmulo
de tempo transcorrido dos comandos-lua.

1. O acúmulo de tempo não inclui
os EXTERNOS tempos de processamento, exemplo:

$ lua -e 'os.execute("sleep 2") print(os.clock())'
0.016143
$ lua -e 'os.execute("sleep 5") print(os.clock())'
0.014617
$ lua -e 'os.execute("sleep 10") print(os.clock())'
0.01477

2. O acúmulo de tempo abrange
o modo interativo INTEIRO, exemplo:

$ lua
Lua 5.3.5  Copyright (C) 1994-2018 Lua.org, PUC-Rio
> os.clock()
0.024139
> os.clock()
0.024963
> os.clock()
0.025756
> while os.clock()<3 do --[[vazio]] end print(os.clock())
3.0
> while os.clock()<3 do --[[vazio]] end print(os.clock())
3.001037
> while os.clock()<3 do --[[vazio]] end print(os.clock())
3.001892
> while os.clock()<3 do --[[vazio]] end print(os.clock())
3.003051
> os.clock()
3.005706
> os.clock()
3.00653
> os.clock()
3.007324

3. O acúmulo de tempo não inclui
a INATIVIDADE entre comandos interativos, exemplo:

$ lua
Lua 5.3.5  Copyright (C) 1994-2018 Lua.org, PUC-Rio
> print(os.clock(), os.date())
0.018798        Wed Mar 20 14:39:32 2019
> print(os.clock(), os.date())
0.020629        Wed Mar 20 14:39:42 2019
> print(os.clock(), os.date())
0.021484        Wed Mar 20 14:39:56 2019

Isso tudo quer dizer que fazer benchmark com os.clock()
refere-se ao que é executado pelo interpretador, apenas.
Não refere-se ao tempo total do script ou do interativo.

(meu erro foi achar que era o tempo-total)
(mas ajudaram-me: Denis, Tomás e Roberto)

Reply all
Reply to author
Forward
0 new messages