Press "Enter" to skip to content

Adding Concurrency to our Web App – Go Lang Practical Programming Tutorial p.24


cosa sta succedendo a tutti il benvenuto a
parte 24 della nostra programmazione di go go
serie di tutorial in questo tutorial cosa
siamo nel tentativo di fare è applicare cosa
stiamo imparando fino a questo punto
con canali e routine
concorrenza in generale alla nostra web app per
vediamo se possiamo farlo andare un po ‘
più veloce perché adesso è carino
lento quindi quello che ho fatto è che sono solo gentile
di eseguire ciò che abbiamo fino a questo punto e
se premi F12 in Google Chrome lo farai
ottenere il tipo di sviluppatore, ho dimenticato cosa
tu chiami questa cosa, ma lo farai comunque
ottenere questa cosa se si può venire a
vediamo qui le prestazioni e poi andiamo
avanti e basta premere questo pulsante per iniziare
profilazione e ricarica di questa pagina attendere
e in generale questo è più per come
roba di tipo front-end ma possiamo effettivamente
usalo per cronometrare il back-end così qui
possiamo vedere che tutta questa cosa
in realtà ha preso un sacco di tempo non lo faccio
pensa che questo sia effettivamente quanto tempo
normalmente richiede, ma quello che possiamo fare è noi
possiamo tagliare quella parte e possiamo vedere dentro
solo in ozio abbiamo speso quattromila
duecentoventitre punto cinque
millisecondi Vado avanti e correre
ancora una volta però perché mi sento
come quello era in realtà più di noi
in genere spendo quindi non ne sono veramente sicuro
se quello era un colpo di fortuna o cosa, ma l’idea
è in quel tempo inattivo che è il momento
che il browser spende fondamentalmente
niente perché sta aspettando così
ora sono le trentotto e quarantacinque
comunque quel tempo di inattività mi consente di eseguirlo
più tempo mentre spiego solo è il
tempo che il browser ha speso ha fatto il
richiesta e quindi è solo in attesa di a
risposta quindi è solo tempo di inattività
dal browser e il motivo per cui siamo
avere quel tempo di inattività è perché il nostro web
server ogni volta che guardiamo l’amore come questo
il numero continua a cadere ogni volta
comunque ogni volta che visitiamo questo slash
AGG rimanda al suo repository
informazioni da tutte le mappe del sito così
ogni volta che lo tiriamo farà tutto
quel codice di nuovo ed è per questo che abbiamo
questo tempo di inattività, ma ancora cadere questo
è davvero frustrante che mi piacerebbe vedere
solo uno veramente statico
almeno ogni volta che ho fatto la provarla
era circa 2800 a 3300 quindi spero che questo
non sarà caduto più lontano, sì, va bene così
bene quindi diciamo che ora siamo
correndo circa 30 153 millisecondi quindi
basta ricordare che torneremo e
correremo di nuovo
con un’altra scheda e quindi possiamo gentilmente
di confrontarli e lo abbiamo fatto così ora
applichiamo tutto ciò che abbiamo
imparato fino a questo punto per farlo
si dovrebbe solo avere a portata di mano, se non lo fai
vai alla versione testuale questo
tutorial ho tutti gli script di partenza
che è necessario seguire, ma si
dovrebbe avere questo tutorial da uno solo
tutorial vai al tutorial precedente
dovrebbe avere l’ ultima versione del nostro
aggregatore di notizie tutto pronto per essere dispiaciuto
non è ancora del tutto all’altezza degli standard
vai formato se se ti interessa così e poi
ovviamente l’ HTML va bene così che cosa sono
intenzione di fare è Sto solo andando per iniziare
modificando questo nuovo zag vai a usare vai
canali di routine e sincronizzazione così
la prima cosa che andremo
avanti e facciamo è andare avanti e
importa la sincronizzazione e poi definiamo la nostra
conosci il gruppo WG sync dot wait
gruppo e poi ora entreremo
fondamentalmente questa è la funzione principale
che abbiamo a che fare con un altro
cosa che ho dimenticato di fare è chiudere il nostro
risposta corpo così solo ad un certo punto voi
voglio solo chiudere così che la risposta si fermi
body dot close Mi sono dimenticato di farlo
uno degli spettatori era come hey come mai
non stai facendo che più perché io
era stupido , quindi assicurati
chiudilo Non mi preoccuperò di questo
uno per ora perché cambieremo
alcune cose qui, ma intendo davvero te
non dovresti dovresti chiuderlo qui
così pure la risposta non il corpo non vicino io
Immagino lo farò
sposteremo tutto questo codice in modo che sia così
perché non me ne importava davvero ma comunque
ora all’interno del nostro aggregatore di notizie
gestore fondamentalmente lo vogliamo
separeremo questi due
cose ma per ora fondamentalmente il nostro go
routine la cosa che vogliamo diffondere
in pratica è questo codice qui il codice
che afferra la risposta al codice che
unmarshal Xin alla nostra fine variabile e
quindi ovviamente chiudi la risposta che è
il codice che dobbiamo eseguire come un bene
routine ma anche come canale per tornare
i valori che siamo Marshall nella nostra
n variabile qui, quindi quello che farò è
creeremo una nuova funzione e io
Immagino che lo metto, lo sistemo bene
qui così chiameremo questa notizia funk
routine e per ora lo faremo
sicuramente bisogno di passare una posizione di
il tipo di stringa se stiamo per imitare
questa funzione interamente così prima di tutto
solo cercando di imitare la funzione e
allora lo convertiremo in un vero e proprio
canale per intero, quindi vado avanti
e prenderemo tutto questo qui e lo faremo
appena tagliato verrà qui sopra incollare e
lascia che ti contenga questo se sei dentro
sublime dovrebbe essere il controllo di apertura
parentesi quadre che dovrebbero risolverlo bene
ma avremo un problema noi
unmarshal in questo valore di notizie ora tu
potrebbe passare fondamentalmente l’oggetto di notizie
attraverso la funzione ce ne sono un paio
motivi per cui non vorrebbe farlo
quando lo facciamo contemporaneamente ma
per lo più le restituiremo
i valori come parte di un canale così
invece quello che faremo in realtà
stiamo solo andando a Bar n news
da qui tagliare venire qui pasta fatta
allora quello che vogliamo fare è che possiamo venire
quaggiù e potremmo dire solo andare e
quindi eseguiamo le news routine, quindi facciamo notizia
routine e quindi passiamo ora posizione di
Naturalmente parte del problema è che non è così
davvero un canale giusto, quindi abbiamo bisogno di
per prima cosa dobbiamo creare un canale così
andiamo avanti e facciamo ciò che chiamiamo questo Q
e questo sarà in grado di fare
faremo un canale di notizie
digita e poi per il buffer lo faremo
dì 30 voglio dire che puoi mettere qualsiasi cosa
deve solo essere più grande del
importo che stai per usare così
potresti dire 500 o qualcosa che sono giusto
andando a mettere 30 è totalmente divertente così
quello sarà il nostro canale quindi
canale che poi passeremo a
la nostra routine di notizie sarà
in pratica quello che faremo sarà C
Chan notizie N maiuscola e poi qui siamo
andando passare Q come il canale che andare
routine ora l’altra cosa di cui abbiamo bisogno
fare è necessario mettere effettivamente il
valori sul canale all’interno di quel bene
routine così venendo alla routine di notizie
in pratica il canale usa il canale
Operatore e poi finiamo così
invia il valore di e oltre al
canale va bene così una volta che abbiamo quello
praticamente ogni valore quindi ne avremo un po ‘
numero di questi tipi di notizie che hanno
stato spacchettato in n quindi siamo fondamentalmente
Ho un certo numero di questi tipi di notizie
e poi iteriamo su quelle notizie
tipi così così da gestire per questo cosa
stiamo andando fare è fondamentalmente vogliamo
prendere fondamentalmente che stiamo prendendo questo fuori
perché è intenzione di inviare sopra a
il canale giusto e poi arrivo
qui vogliamo farlo
iterazione su N e parole chiave e cose
ma non abbiamo una sola fine
abbiamo un gruppo di fini, giusto e
questo gruppo di estremità sta venendo la
canale quindi in realtà abbiamo bisogno di iterare
sul canale e poi abbiamo questo
questo tipo di notizie è fondamentalmente così per iterare
attraverso il canale che già sappiamo come
fallo così come il quarto elemento del colon
intervallo uguale sul canale Q e in
Infatti fammi solo
taglia questo vieni qui Elam sarà quello e
sai il tipo di notizie, quindi ora facciamo solo
prendi questo e sostituisci n con Elam
elemento okay, quindi abbiamo ottenuto in questo modo
stiamo effettivamente iterando su quelle notizie
le mappe vengono popolate con le mappe delle notizie
così praticamente la stessa del tutto
solo la principale differenza qui è piuttosto
di un singolo tipo di notizie che stiamo andando
per scorrere su che ha tutto il
valori avremo un sacco di questi
tipi di notizie e quindi abbiamo bisogno di iterare
su quelli perché ognuno è da solo
piccolo canale fondamentalmente così ora quello che noi
la necessità di fare è gestire per il
sincronizzazione, quindi abbiamo già ottenuto il nostro
il nostro gruppo di peso qui è l’ unico
l’altra cosa che dobbiamo fare è essere sicuri
mentre andiamo in giro dobbiamo aspettare
gruppo aggiungere uno va bene anche dopo
questo per ciclo for dobbiamo aspettare gruppo
punto aspettare ma poi una volta che abbiamo finito noi
bisogno di chiudere la coda e quindi abbiamo bisogno
differire il gruppo di attesa fatto in modo differito
aspetta il gruppo fatto nelle notizie attuali
routine stessa penso che sia tutto
Immagino che mi considererò fortunato
se questo risulta essere tutto così
Sono sicuro che mi manca qualcosa ma andiamo
avanti e ho rotto le notizie di corsa AG
andiamo avanti e rieseguiamo go run news AG
andare sulla linea 12 dopo il primo livello
riga di dichiarazione dodici così qui
Oh, vedo quindi è solo che è un top lavabo
tipo di gruppo di peso proviamo di nuovo
salvo che vieni qui che stavo trattando
come una funzione va bene lo permetterò
quindi vieni qui, rinfresciamo e
apriamo gli strumenti di sviluppo così
questo è il vecchio che ho appena fatto
e lo ha lasciato e poi sono solo un po ‘
rifilati assicurati di non averne
aggiunto tempo di inattività e quindi questo è il nostro nuovo
uno quindi lascia che mi rinfreschi prima di tutto
vero veloce come puoi vedere quando siamo noi
aggiornamento voglio dire che ha i dati lì
come quasi istantaneamente rispetto a prima
comunque, ma in realtà otteniamo un reale
tempo fuori aspetta il resto va bene così
Voglio dire che puoi distinguere dal
gate sarà sicuramente più breve
rispetto all’altra
quindi questa volta il nostro tempo di inattività è 454
millisecondi rispetto a prima di dove
avevamo 30 162 quindi una differenza enorme
rispetto a prima sì sì, questo è più
di sei volte più veloce, quindi tutto ciò che abbiamo fatto
per ottenere che quel gioco stava usando semplicemente go
routine con canali e basta
davvero così bello che siamo stati in grado di farlo
abbattere un po ‘di tempo ora 454
il tempo di risposta al millisecondo non lo è ancora
tutto ciò che vogliamo necessariamente scrivere
casa su un paio di cose solo per
considerare è come per esempio alcuni di
questa volta sarà Washington
La colpa del post è giusta
quindi per esempio quanto è lungo
tempo di risposta quando chiediamo l’effettivo
come l’ indice Sitemap reale
qual è quel tempo di risposta e poi anche
qual è il tempo di risposta per il più lento
sitemap nella lista così almeno quando io
li ho controllati era come un circa 70
tempo di risposta al millisecondo per il
indice Sitemap e almeno uno dei
sitemaps Ho controllato quindi ti avrei detto
sappi che potresti essere in grado di tagliare noi
diciamo 150 millisecondi lasciandoci con
circa 300 millisecondi che sono ore
che abbiamo bisogno di capire cosa fare
con una cosa che potremmo fare è
piuttosto che potremmo solo sul posto
caricare potremmo fare questa parte
potremmo caricare in questo modo la mappa del sito
informazioni sull’indice che potremmo effettivamente fare
questo al di fuori delle notizie un giocatore d’azzardo
è probabile che non aggiungeranno un nuovo
mappa del sito tutte le volte che riceveranno
nuovi dati quindi vogliamo caricare i nuovi dati
per l’utente praticamente ogni volta che lo fanno
accedi a questa pagina perché nuove notizie sono
uscendo costantemente
ma con quale frequenza è una nuova mappa del sito
uscirò probabilmente non molto
spesso giusto è un po ‘
diverso ma per essere onesti, intendo io
ricarica e bam voglio dire che i dati sono lì
come immediatamente rispetto a rispetto a
prima di essere abbastanza sorpreso è
in realtà sembra un 300 millisecondo
più veloce di quello per me, ma immagino di no
Non so comunque che ci sono molti dati
anche io intendo le altre cose che noi
stanno andando avanti sono come i maggiori guadagni
che potremmo davvero fare qui
probabilmente non ci sono più nel nostro go code
questo è molto più da fare con il tipo di
sviluppo web front-end che immagino
potrebbe essere il nostro codice go per esempio come
questa tabella anche se ha
impaginazione è come il diritto immediato
perché tutti i dati sono effettivamente lì
se dovessimo vedere la fonte tutti i
i dati della tabella sono corretti e per questo motivo
la ricerca è così bella e così veloce
perché i dati sono già lì è
usando solo JavaScript e basta
in modo tale per accelerare una delle cose
che potremmo fare in teoria è come noi
potrebbe piacere se lo facciamo scorrere sopra oh mio
la testa è nel modo giusto, ma sì, puoi farlo
vedere la maggior parte del tempo trascorso qui è acceso
rendering c’è una specie di aereo
sorvolare che è principalmente per questo
tavolo e soprattutto perché abbiamo così tanto
informazioni quindi una cosa che potremmo fare è
aggiungi paginazione reale o qualcosa e non
in realtà hai conosciuto 1400 voci a
ogni volta che viene passato perché
ci sono molte informazioni che abbiamo
il titolo che abbiamo i dati URL e
quindi tutti i dati delle parole chiave che sono
passato e mostrato su questa pagina che proprio
sta semplicemente richiedendo molto tempo
un sacco di roba così in ogni caso, almeno per
ora che è un enorme miglioramento rispetto la nostra
codice precedente abbiamo le cose in esecuzione
molto molto più veloce, così bello
se voi avete dei commenti sulle domande
qualunque cosa si senta libera di lasciarli sotto
se ne hai e
movimenti tutto ciò che si può pensare
per accelerare davvero questo gioco
condividere più velocemente con noi altrimenti è così
tutto per ora spero che vi siate divertiti
la serie di fantasmi e ci vedremo ragazzi
in un altro tutorial
Please follow and like us:

Be First to Comment

Lascia un commento