Pergunta


Existe alguma maneira rápida de avaliar o desempenho/tempo de execução de uma determinada parte do código escrita no novo playground do XCode 6?
Quero começar a aprender Swift comparando diferentes estilos de codificação para determinadas soluções e seu impacto no desempenho do código.

Foi útil?

Solução

Nós desencorajamos fortemente usando os playgrounds para medir o desempenho, pelo menos usando o tempo como sua medida de desempenho.De longe, a maioria do tempo gasto durante um playground é o registro de resultados para exibir na barra lateral;O tempo real seu código não contribui tanto.Assim, o tempo de execução do seu código em um playground dependerá principalmente de quantas linhas de código são executadas / resultados são registradas.

Se você quiser fazer medições de desempenho, confira a estrutura XCTEST.Você pode criar um pacote de teste para o seu código SWIFT.

Uma coisa que você pode medir em um playground é o número de vezes que suas linhas de código são executadas.Então, se, por exemplo, você está tentando medir a complexidade algorítmica de algum código, você poderia fazer isso com base em quantas vezes ele precisa executar linhas de código para e.Complete um tipo ou seja o que for que você está tentando fazer.Linhas de código que são executadas mais de uma vez exibem o número de vezes que são executados no barra lateral de resultados.

Outras dicas

Eu construí esta pequena ferramenta que permite que você tenha testes de desempenho em seu playground.

Vou continuar a atualizar e aprimorá-lo, mas por enquanto, isso lhe dará a capacidade básica de medir quanto tempo uma função leva a ser executada.

https://github.com/sebastienpeek/swift-performance

Encontrei uma solução (talvez não tão elegante):

var start = TickCount()

var implicitInteger = 0
for (var i = 1; i < 500; i++) {
    implicitInteger += i;
}

var end = TickCount()
var dur = end - start


A variável 'dur' fornece os ticks que seu código precisava para executar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top