Press "Enter" to skip to content

Fast code is NOT important – FunFunFunction #27


buon lunedì mattina sono mpj e questo è
divertente funzione di divertimento così oggi noi vuole
pensa molto alla performance
clickbait il titolo di questo video è
il codice veloce non è importante ciò che è
importante è l’esperienza utente veloce lì
è una relazione tra i due ma
non è forte come penseresti
anche se come programmatori
mi piace davvero essere emotivo
livello sarebbe come sembra a me
come se scrivessi solo codice performante
la strada attraverso e seguire tutte le regole
allora la mia app sarà veloce proprio così
sembra come dovrebbe essere ma come
spesso impariamo nella vita che l’universo è un
luogo e cose strani e imprevedibili
non sono affatto così come pensiamo che loro
dovrebbe essere prima di entrare in questo video
voglio essere chiaro in modo che
nessuno mi fraintende qui che io
pensa che il software delle prestazioni
le prestazioni sono estremamente importanti ma io
pensa che molti sviluppatori abbiano un
una visione troppo semplicistica e ristretta
che spettacolo è ed è quello che
questo video sta per essere su I
credo che uno degli aspetti principali
quello stabilisce un adulto a parte un bambino
che l’adulto è consapevole che lui o lei
è all’interno di un contesto sia adulto che
il bambino ha un modello concettuale di
il mondo insieme di intese o
credenze o serie di principi ma il
cosa che imposta l’adulto e il bambino
a parte che l’adulto ne è consapevole
il loro contesto le persone intorno a loro il
limitazioni della situazione attuale per
ad esempio un bambino impara presto su quello
dovresti essere gentile con gli altri che è un
buona euristica di trattare con gli altri
umani dovresti essere gentile con loro ma
non è una verità abbastanza universale perché
ci sono persone che non sono belle e
non risponderà bene a bello e
a volte tu
dovremo essere non gentili con loro così
forse tu espandi la regola di essere essere
bello per le persone finché sono belle
a te ma col tempo impari come a
bambino che potrebbero esserci delle eccezioni
anche a quella regola perché a volte è bello
le persone sono manipolative o forse
le persone simpatiche vogliono semplicemente
qualcos’altro e tu fai il tuo
interesse o in conflitto e potrebbe
non essere possibile essere gentili, il mondo è
un posto davvero complesso e abbiamo questi
modelli semplificati nelle nostre teste che aiutano
noi a ragionare sul mondo se reale
la vita non va secondo il mentale
modello che causerà molto
delusione in te e in un bambino che è
non abituato alla loro scuola ha fatto i capricci
una persona matura quella che noi
considera un adulto e un leader che sono
anche deluso perché anche loro hanno
un modello mentale ma sanno che il
il modello mentale è solo un modello e non lo è
corrisponde veramente al reale
mondo e sanno adattarsi quando
il loro modello mentale si rompe quando io
dì bambino e adulto io sto parlando in a
senso più generale e appena cresciuto
e sto diventando più grande e più grande di me
parlando di imparare le cose in generale
per esempio ballo il Lindy Hop
a volte è un ballo di coppia e quando
per prima cosa impari che ti insegnano a
insieme molto semplificato di regole su come
come ballare non è proprio la danza
è solo una forma molto semplificata di
balla ma il modello semplificato consente
a ragionare sulla danza e e
e non averti sopraffatto da questo
fase ma man mano che cresci lo impari
queste regole sono molto più flessibili di
inizialmente sei stato portato a credere e
va bene all’inizio che avevamo
semplici regole in modo che non sarebbe
sopraffatto ma man mano che cresci hai bisogno di
essere in grado di diventare più flessibile e
capire
e le cose olisticamente ho realizzato un video a
mentre torna alle funzioni di fabbrica che è
una versione alternativa più semplice da creare
oggetti in JavaScript anziché utilizzare
il prototipo o le classi e il più
la risposta comune a quel video sono le persone
chiedendo non è il prototipo non il
il prototipo ha prestazioni migliori
caratteristiche e memoria
caratteristiche rispetto alle funzioni di fabbrica
e la risposta è sì ma solo
se lo vedi in questo piccolo
situazione semplificata vincolata in a
cose di applicazione della vita reale come quella
o non importa che c’è un sito
che probabilmente hai visto si chiama
La comunicazione perfetta di J dove puoi scrivere poco
Frammenti di JavaScript e metterli
fianco a fianco e farli eseguire
milioni e milioni di volte accanto a
l’un l’altro e poi vedi come
uno era il più veloce così le persone scrivono
questi micro benchmark accanto a ciascuno
altro, scopri quello che è
più veloce e poi fanno post sul blog e
pubblicano dicendo che questo è il modo
dovresti per archi o questo è il
modo in cui devi creare oggetti perché
questo è il più veloce e questo è tutto molto
seducente per me come un umano perché questo
mi dà questo modo inequivocabile di fare
le cose in modo ottimale ma ce ne sono due
problemi con l’osservazione dell’operazione
prestazioni come questa tu sai che il
tempo necessario per eseguire questo singolo
tipo di operazione che ottimizza il
il primo problema è che javascript
i compilatori sono abbastanza intelligenti per me lì
sono molti i casi in cui ho scritto
codice follemente inefficiente e solo con
la scusa che posso provarlo
questo e poi ottimizzarlo in seguito perché
che ha davvero bisogno di essere ottimizzato e
solo per capire che il codice funziona
follemente veloce per nessuna ragione ovvia ma
probabilmente perché era stato ottimizzato
dal compilatore v8 in qualcosa di veramente
davvero performante automaticamente e anche
c’è molta concorrenza in corso
tra i compilatori soprattutto nel lavoro
comunità di script, quindi una cosa è
la giornata di oggi potrebbe non essere lenta la prossima settimana
è così difficile guardare un dato pezzo di
codice e dire se sarà così
inefficiente o no perché sono così
molto di più succedendo sotto di te quando
si tratta di prestazioni a singola operazione
devi solo accettare che non lo fai
so davvero se qualcosa sarà
veloce o no perché anche se hai letto
alcuni post sul blog che dicono che questo è lento
che potrebbe essere cambiato da allora o
i dettagli delle tue applicazioni
lo renderà più facile prima dell’optima
compilatore per ottimizzare ma il secondo
il problema è molto più grande e basta
concentrandosi su una singola operazione ci dà
questo tipo di visione a tunnel che rende
noi dimentichiamo il tutto più coeso
pensando alle funzioni di fabbrica
contro la fabbrica di esempio di prototipi
le funzioni sono circa il 30% più lente di
prototipi e potresti pensare che wow
questo è molto finché non consideri il fatto
che sono entrambi whoa insanamente veloci
va bene
quindi il mio telefono può creare 643 milioni
Oggetti JavaScript al secondo in cui viviamo
il futuro ma quelli sono oggetti semplici
forse sono più complicati e
hai più considerazioni sulla memoria e
forse hai davvero bisogno di creare
milioni di oggetti al secondo sei
facendo qualche cosa 3d in JavaScript o
qualcosa
Non lo so, diciamo, fallo, se lo sei
in quella situazione potrebbe essere saggio
guarda come puoi creare ogni orbita
più efficacemente ma è più probabile
che è meglio per voi di pensare
posso evitare di creare questo molti oggetti
in primo luogo e questo ci porta
nell’algoritmo delle prestazioni algoritmiche
è una parola di fantasia nella programmazione – è
quasi sinonimo di approccio Let’s
dire che avete una lista e avete bisogno di
trova un elemento in quella lista un ingenuo
algoritmo
starebbe semplicemente passando per la lista tutti
la strada fino a trovare l’oggetto e poi
lo restituite si potrebbe fare che
algoritmo più efficiente da parte tua
per esempio ordina la lista mantienilo
ordinati e in questo modo puoi essere intelligente
su dove inizi a cercare nel
elenca perché sappiamo che un oggetto non può
essere in alcune aree per esempio o se
stai creando molti milioni di oggetti
al secondo potresti essere in grado di tagliarlo
numero di oggetti verso il basso se si disegna
gli oggetti che sono sullo schermo in a
dato il momento, ad esempio, questo è spesso
indicato come complessità temporale o semplicemente
efficienza negli algoritmi non sei così
interessato a quanta memoria o come
molte prestazioni ogni singolo passo
sei più interessato a fare
sicuro che quei passaggi non avvengano in
il primo posto
la performance algoritmica è molto di più
modo ragionevole di pensare
performance piuttosto che guardare micro
punti di riferimento su J’s perf
ma soffre ancora dello stesso
problema in quanto ha questo
semplificata vista seducente del mondo IT
ci dà la possibilità di rompere un problema
giù in questo modello semplificato che noi
posso solo ragionare e possiamo farcela
meglio e possiamo sentirci bene e
Posso davvero relazionarmi con quegli algoritmi
sono divertenti sono e questo è anche quello
li rende un po ‘pericolosi perché dentro
la maggior parte dei casi su cui un algoritmo non vive
proprio a meno che tu non sia un accademico
sviluppando ancora per un giornale vivrà
all’interno di un sistema più grande un grande sistema che
probabilmente saranno milioni di linee
del codice e perché sai che gli umani crescono
il nostro vecchio tempo su questa terra è limitato
non avresti il tempo di farlo
scrivi tutto il codice perfettamente
modo ottimale per cui è necessario sapere come
indirizza i tuoi sforzi così quando ottimizzi
hai bisogno di sapere quali parti del codice
sono calde e quello che intendo è quello
parti dell’esecuzione
quali percorsi di esecuzione sono presi dal
user molto se spendi molto del tuo
tempo di ottimizzazione del codice di caricamento e
quel codice di caricamento è usato solo nel
finestra di dialogo delle impostazioni che l’utente solo
andare in una o due volte l’anno che lo farà
essere un cattivo investimento del vostro tempo
potrebbe effettivamente essere un uso migliore del tuo
ottimizzazione del tempo con risparmio di 50 millisecondi
del tempo necessario per aprire il menu
per esempio perché potrebbe essere
qualcosa che l’utente usa molto nel
terminare l’unico criterio ragionevole da utilizzare
per le prestazioni di un’applicazione è
chiedere all’utente questo sembra veloce e
una volta identificate parti del
applicazione dove non si sente veloce
per l’utente si si può mettere il tuo
visione del tunnel lì invece e individuare
come va bene questa questa vista qui questa
non sta caricando abbastanza velocemente sì
dovrebbe essere il motivo per cui poi colpisci il
profiler Sono un convinto sostenitore che veloce
le applicazioni nascono nel profiler
da nessun’altra parte è quasi impossibile
scrivere anticipatamente il codice che sta per
devi rendere l’applicazione veloce invece di te
devo guardare i biscotti coesi
prodotto e capire quali parti di
sono lenti ed eliminali uno ad uno
quindi in sintesi vorrei che tu continuassi
in fondo alla tua mente quel codice veloce
non equivale a pensare al software veloce
la performance della tua app olisticamente
e non farti prendere in pezzi
il codice ti lascia con collegamenti a tre
ottimi video che vorrei tu
per vedere il primo è un insegnata dal M
R oliva che è questo straordinario russo
ingegnere del compilatore che è un esilarante
parla si ha realmente bisogno di guardarlo la
il secondo discorso è un discorso di Paul Lewis
Google che è un ragazzo incredibilmente divertente e
parla davvero molto bene e parla
su qualcosa che chiama rail che
non ha niente
fare con Ruby on Rails suo invece di a
modo di pensare alle prestazioni
cos’è lento ciò che significa e il
il terzo è un video più carnoso dove
mostrano come fare raelynne nella pratica
utilizzando gli strumenti di sviluppo di Chrome e
non lesinare su questo anche se non sei un
sviluppatore web perché questi principi
sono davvero bravo in generale, sono mpj e
questo è stato un episodio di fun fun function
e faccio questi episodi ogni lunedì
mattina quindi dovresti iscriverti in questo modo
di non perdere il prossimo, se hai
già fatto e non si vuole
aspetta il prossimo puoi cliccare qui
per vedere se uno degli altri episodi
solletica la tua fantasia fino al prossimo lunedì
la mattina rimani curioso
Please follow and like us: