2020-03-26 – Optimização de Código numa Calculadora de Subnetting IPV4 – 4 milhões de subnets calculadas em 9 segundos num PC velho, em C++

Uma imagem partilhada com amigos em 26 de Março, sobre o projecto Knowledge Tester, em que andava a optimizar em termos de velocidade o código de cálculo de subnetting.

Descrição na altura:

«Optimização de código. 4 milhões de subnets calculadas em 9 segundos, 500.000 redes por segundo (inicialmente era 18 e 15 e 12).

Quando programo faço coisas à pressa, para funcionar, mas depois convem optimizar algumas coisas. Neste caso sempre que se inseria (ver código abaixo) um bit ao vector, perdia-se tempo com resizes, reescrever, realocações de memória, etc, e a coisa resolve-se facilmente pelo que podem ver no resultado.

Em simultâneo, usar vectores por referência e não os retornar, usar vectores de ints e não bools, optimizados para performance e não memória (há trade-off aqui), etc, etc.

Podia tentar melhorar ainda mais, mas acho que daqui já não vou ganhar muito mais. E se optimizo muito, o programa fica rápido mas não o termino, tenho de escolher um equilíbrio entre o tempo de desenvolvimento e a velocidade, não posso ter o melhor dos dois mundos. Fica assim este.

Era 18 segundos a primeira versão, depois 15 a segunda, depois 12 a 3ª (à medida que fazia alterações), até que depois cheguei à de 9 segundos.

Leave a Reply

Your email address will not be published. Required fields are marked *

RSS
Follow by Email
LinkedIn
LinkedIn
Share