Velocizzare il codice

M
Mic_s (670 points)
2 16 22
asked Feb 5, 2021 in HW8 di recupero by Mic_s (670 points)
Salve a tutti, vorrei chiedere un consiglio su come migliorare il mio codice e renderlo più veloce in quanto mi passa tutti i test meno uno. Utilizzando il profiler ho visto che la funzione che occupa più tempo è quella che mi permette di trovare il colore e le coordinate di ogni rettangolo in quanto scorre tutta la lista dell'immagine. Non ho idea di come renderlo più veloce ho anche escluso con un if il controllo dei pixel con il colore di sfondo.

Grazie in anticipo
149 views

1 Answer

iacopomasi (2760 points)
13 19 39
answered Feb 8, 2021 by iacopomasi (2,760 points)

Salve @Mic_s ,

ci sono diverse soluzioni al problema, 1) una che fa uso di accesso all'immagine dentro la funzione ricorsiva ed 2) un'altra che preprocessa l'immagine prima e solo dopo applica la chiamata ricorsiva per contare i rettangoli.  Da quello che ho notato io 1) è più veloce di 2). Inoltre, implementando la strategia 1) ho notato che ci sono diverse accortezze minuziose che uno può prendere per cercare di velocizzare il codice, fondamentalmente sfruttando come i colori si ripetono.

Non ti posso dire altro, ma spero che ti aiuti.

Iacopo