Ho provato a trovare una risposta e ho trovato una domanda correlata, e mentre confermano i miei risultati (that one multiple selector call is slower than multiple single selector calls) nessuno di loro mi dice perché.Selettore multiplo rispetto al rendimento del selettore singolo
fondamentalmente, quando si esegue questo codice:
$("#one, #two").hide();
$("#one, #two").show();
Contro questo codice:
$("#one").hide();
$("#two").hide();
$("#one").show();
$("#two").show();
Poi quest'ultimo sarà più veloce di circa il 50%.
Tuttavia, una volta aggiunto un terzo selettore, la differenza di prestazioni è del 39% più veloce.
Quarta differenza di selezione: 26% più veloce.
Quinto: 30% più veloce.
Sesto: 31% più veloce.
Dieci: 31% più veloce.
(Do atto questi valori sembrano variare di circa un margine del 5%)
in modo da ottenere qualcosa che assomiglia a questo:
L'andamento sembra plateau circa 6 selettori. Non sembra mai essere più veloce di essere il 31% più lento rispetto a ciascuno di essi attraverso una singola chiamata. Perché è quello?
Personalmente, mi piace usare più selettori per chiamata, ma sembra avere un (relativamente) grande successo di prestazioni. Quando sarebbe (non) appropriato usare?
Interessante. Avevo sempre pensato che il primo caso (multiplo) sarebbe stato più veloce. Che dire dei selettori di classe, prestazioni simili? –
Questa è stata anche la mia ipotesi, quindi sono rimasto sorpreso da questo. Non ho controllato i selettori di classe, ma vale la pena esaminare. Farò dei test più tardi. – Johannes
Non sono sicuro di * relativamente grande *. Il 50% più veloce non significherà molto nell'immagine grande se il codice di riferimento è già in esecuzione al microsecondo. –