Julia para Otimização - Exemplo 14

« voltar para “Julia para Otimização”

Objetivo: calcular tempos de execução.

No Julia é fácil calcular o tempo de execução de um trecho de código. Quem é familharizado com Matlab deve conhecer os comandos tic/toc, que “marcam” os tempos inicial e final da execução de um trecho de código. Apesar de ser possível fazer algo semelhante no Julia com o comando time(), essa estratégia é considerada obsoleta pois não computa o tempo com precisão, e portanto deve ser evitada. Uma maneira mais adequada de computar tempo de execução é usando as diretivas @time ou @elapsed.

Por exemplo, para imprimir na tela o tempo de execução da chamada de algoritmo(), basta fazer

julia> @time algoritmo()

A diretiva @elapsed permite gravar o tempo de CPU em uma variável e a saída do algoritmo em outra(s) variável(is). Por isso é indicada para tabelar resultados. O trecho a seguir grava o tempo de CPU em tempo e a saída do algoritmo em resultado:

julia> tempo = @elapsed resultado = algoritmo()

Exercício

No Exemplo 9, ajuste o arquivo testesSIF.jl para tabelar os tempos de execução das chamadas de gradiente usando @elapsed, mantendo a saída do algoritmo. Grave os resultados em um DataFrame, como explicado no Exemplo 12, adicionando uma coluna para o tempo de CPU.