
quindi il mio nome è che lavorerò per i media
matematica per un’azienda di tecnologia pubblicitaria che è
coinvolto nell’aiutare come la fortuna 500
aziende dai media digitali così provando a
pensa come il modo migliore per descriverlo
vai su un sito web è come questo
lo spazio pubblicitario per banner si presenta in alto a destra
tutti amano quelli che sono in realtà
determinato su e calcolato in reale
tempo c’è un’asta che ci piace
circa 40 millisecondi per decidere noi
vuoi partecipare a quell’asta?
vuole comprare in realtà che che
impressione e succede circa due e
un mezzo milione di volte al secondo globalmente
e quindi per questo dobbiamo fare un
molte decisioni molto rapide molto rapidamente
dobbiamo analizzare molti dati così
come i costi delle impressioni individuali come
forse un centesimo o un centesimo di a
centesimo o giù di lì, ma le campagne che questi
le aziende stanno funzionando o non lo so
come 10 milioni di dollari all’anno o 50
milioni di dollari all’anno e in genere
maturano come se volessi vendere di più
di questo prodotto e quindi sostenendo tale obiettivo
di come vendere più di questo prodotto
dentro comprerò questo particolare slot
perché è come il momento giusto per comprare
questa area annuncio è ciò che siamo bravi a farlo
quello che facciamo davvero bene così come me
menzionato due milioni e mezzo
richieste al secondo circa novantanove
punto nove due percento di quello
il percentile è sotto i quaranta millisecondi
facciamo un centinaio di venti terabyte
di analisi dei dati ogni singolo giorno e
questo accade attraverso nove diversi dati
centri più nuvola roba e lo facciamo
in un sacco di un sacco di lingue diverse
Penso che tu sappia che Scala potrebbe essere l’unica
che abbiamo spinto più duramente e investito
più difficile nella storia più recente
ma abbiamo anche un sacco di C ++ un sacco di
andare di cui parlerò
parlare di un secondo Python Ruby Perl
PHP e so che mi manca più questo
la diapositiva è solo così lunga quindi sì sì parla
davvero su due cose in particolare come
go help media math perform e come
facciamo andare a esibirci un po ‘di così
un po ‘di entrambi, quindi inizia con
prima cosa un po ‘di contesto in
2012
avevamo un gigantesco monolite API
quindi tutto ciò che facciamo ha API tutto
è dotato di un’API siamo davvero grande
credenti come la visione della piattaforma
e il nostro stack API che sai è quello
tipo di scatola nera tutto sotto di esso
era una grande API e funzionava
fuori davvero bene per un po ‘di tempo, ma abbiamo
stato circa il sessanta per cento
crescita anno su anno, quindi quando ho iniziato
andato a Mia’s acquisito a dicembre
del 2012 penso che siamo circa 120 persone
e ora siamo circa 650 persone e oltre
il modo in cui abbiamo realizzato sei tecnologie
acquisizioni e tredici nuovi prodotti
linee e quindi amo che ci fosse un
La legge di Conway parla perché io fortemente
credo che sia come una cosa reale e quindi noi
avevo bisogno di un modo per risolvere questo da un
prospettiva organizzativa in realtà
sostenere la rapida crescita che eravamo
subendo penso che penso sia stato detto
ieri, ma come ho davvero credo
come una migrazione a così è più su un
soluzione organizzativa a un tecnico
problema piuttosto che come una soluzione tecnica
così così qui siamo 2015 è un po ‘
un po ‘meno monolite II giusto, così abbiamo fatto a
gran parte del lavoro di scomposizione e abbiamo
mosso un sacco di cose da quel monolite
dentro conosci un po ‘di più di a
servizio o un modello di Amara e abbiamo
un bel po ‘ di micro servizi oggi
se vuoi un primer su quello vorrei
consiglio davvero di guardare Rebecca
I Parsons parlano da ieri, lo penso
è stata una introduzione davvero solida in questo
e soprattutto se hai sentito il ragazzo
il retro ridacchia come quello che tu
non dovrei farlo, probabilmente sono io
perché ci piacciono tutte queste cose
che non dovresti fare ed essere stato
apprendimento così fondamentalmente nel processo di
risolvere per quei problemi che abbiamo creato
come una serie completamente nuova di problemi, giusto
quindi amo questo ragazzo perché è scontroso
Sono scontroso
quindi in pratica è diventato il nostro simile
sistema complesso di nuovo menzionato nove
data center più cloud più tutto questo
dati già complessi in un sistema uniforme
sistema più complesso
ha reso le dipendenze e il fallimento
lo scenario è ancora più complicato e
ancora di più
difficile da gestire e, a causa di ciò
sai che ha creato questo peso sul nostro
ingegneri per riflettere su queste cose
sai una base ancora più granulare
quello che hanno prima della ancora essere
servizi disaccoppiati di nuovo come andare
attraverso quel processo di transizione che hai
passare attraverso lo sforzo di realtà
disaccoppiare e scomporre le cose se
non è abbastanza lì, ma i tuoi team hanno
già fatto questo tipo di dispersione
gestione di quel codebase su più unità
diverse squadre è un dolore gigante nel
ASS che erano penso ancora un po ‘
cercare di risolvere la scoperta del servizio è ora
come in realtà un problema di prima classe
giusto così con i nuovi servizi che escono
le nuove versioni arrivano e tu sai
ci potrebbero essere 30 40 50 penso alcuni di
voi ragazzi probabilmente avete familiarità con il
Grafico di accordi di Netflix di 200 300 come
diversi servizi tutti parlano a ciascuno
altro senza come quello che viene gestito
modo automatizzato è sorta di impazzire
credo che la matematica dei media in realtà si accoppia
Ops persone qui che vivono un po ‘
di quel dolore adesso
gestire gli ambienti è davvero doloroso
quindi sai che abbiamo questa convinzione
automazione che io voglio provare il mio
cosa contro qualcosa che è reale
invece di un po ‘di shell e così via
significa che ho bisogno della mia cosa e ho bisogno del tuo
cosa e ho bisogno di loro per vivere in un
ambiente isolato in modo da poter testare il mio
cosa contro la tua cosa senza il
automazione per sostenere queste due cose
cosa fai bene devi gestire
tutto questo manualmente è una specie di dolore
e poi si presenta come un intero slew
dei problemi dei sistemi distribuiti perché
hai appena creato una superficie per a
una tonnellata di incoerenza extra, quindi se tu
non concentrarsi veramente sull’automazione degli strumenti
potrebbe essere fregato così la mia opinione va
in realtà lo rende piuttosto facile da risolvere
alcuni di questi problemi e ce ne sono alcuni
alcune diverse ragioni per questo
così i primi sono relativamente semplici
facile da creare servizi da zero ora
So che abbiamo appena detto che avere di più
tipo di servizi di creare alcuni di questi
problemi ma come si scopre come te
può anche creare servizi specifici per
risolvere questi problemi e perché è
un linguaggio così semplice c’è molto
bassa impronta mentale al primo servizio
che ho scritto e vado penso l’ho preso
mi ha preso forse un weekend per imparare entrambi
la lingua e costruisci una prova di
concetto come uno significativa
e penso che sia una sensazione molto comune
Mi sento come se ci fossero un paio di persone
annuendo come quello è qualcosa
che mi sono davvero attaccato presto
su di esso in compilazione super veloce a a
binario statico quindi ci sono due parti di
quello che è davvero importante se
sei mai stato rovinato da un sai
interpretare il linguaggio è davvero bello
essere in grado di colpire salvare e come vedere il
risultato molto velocemente puoi farlo
con go puoi aggiungere un commit o un hook
post giusto salva gancio sul tuo IDE e
fallo ricostruire la cosa perché?
prende io non so un secondo o due a
costruisci il tuo binario e poi puoi copiare
detto binario dalla tua macchina a
produzione se si desidera o messa in scena
se volevi o qualsiasi altra cosa perché
è solo un binario non c’è JVM
non ci sono dipendenze o niente è
solo il binario statico che ha incorporato
costrutti di concorrenza così è
sicuramente non unico per la lingua
ci sono altre lingue che hanno un
molti di noi, ma sai che è andata
routine e ha canali di routine
che ti permettono di eseguire le funzioni
contemporaneamente e canali che consentono
per passare i messaggi tra loro e
parleremo un po ‘ della magia
ma è qualcosa di così gentile
di aiuti aiuta a renderlo un po ‘più facile
di non preoccuparsi per il problema di come
come faccio a farle andare
routine o qualsiasi cosa parlare o come sono
riuscirò a far funzionare la mia concorrenza senza
introducendo tutte queste cose conosci il fallimento
scenari invece posso solo sapere
sfruttare il costrutto del linguaggio
per risolvere questo problema per me e poi
finalmente ha un fantastico soggiorno nel
biblioteca quindi la fantastica libreria standard
quando dico che è fantastico è davvero
fantastico in molti casi, se lo sei
cercando di costruire qualcosa da zero
potresti non aver bisogno di alcuna dipendenza
qualsiasi dipendenza di terze parti
ora dipende solo da quanto sei ambizioso
sono, ma io tipo di ciliegio ne ho scelti alcuni
diversi esempi di alcune delle cose
che uso regolarmente così mi piace
il pacchetto di rete in modo netto HCP e così via
e così via è fantastico, in realtà
un ottimo esempio di andare idiomatico
e c’è è penso che sia estremamente
banale per creare un server HTTP solo
mi scusi in cima a quella codifica JSON
giusto tonnellate di tonnellate di codifica non solo
JSON ma tu lo sai
qualsiasi altro formato in cui sono cotti
quella gestione del sistema operativo di sistema
sai affondare e affondare tutto atomico
la tua manipolazione di stringhe e byte
funzionalità di compressione delle funzionalità
e molti di voi conoscono la cripto
i pacchetti là fuori sono di nuovo molto semplici
per creare qualcosa da zero usando
solo quello che esce dalla scatola ma se
quello che non sai non risolve il tuo
problema da solo e tu non vuoi
essere tanto ambizioso che in realtà c’è un
comunità relativamente vivace attualmente
quello che sai ha generato molto
diverse librerie e strumenti e quelli
sei a conoscenza dei casi d’uso di
scoperta e contenitore di servizi
gestione e configurazione gestione
algoritmi di consenso e pettegolezzi e
database nativi che distribuiscono cache e
strumenti di monitoraggio e non so come
20 test delle prestazioni dei framework web
che avrebbe preso traccia come ecc
molti di quei problemi che menzionano presto
su circa come queste sono le cose queste
sono i problemi che ho creato ora
passando a un gruppo di micro servizi
ci sono strumenti in viaggio e una comunità
in giro risolvendo esattamente quelle cose dopo
cosa è in realtà è la catena di strumenti
grande
Probabilmente potrei finire su questo scivolo come
Potrei solo dire che questo è il migliore
cosa e poi potremmo finire e poi andare
birra o qualcosa del genere
andare funked è fantastico come non lo so
come affermarlo lo voglio in ogni
una sola lingua come go func è il
cosa più bella di sempre
quanti di voi ragazzi avete visto questo
commetti bene, ovviamente sono il più
sviluppatore produttivi nel mondo e
tutto quello che ho fatto qui è cambiato
spazi per le schede perché le schede sono
decisamente meglio degli spazi e se tu
non sono d’accordo con me, ti sbagli, ma cos’è?
bello questo è che non devo mai avere
questo argomento di nuovo mai perché il
le specifiche del linguaggio in realtà definiscono
il formato e c’è uno strumento da applicare
bene quindi non abbiamo mai dovuto parlare di
questo se vuoi lo spazio come sempre
cool, lo fai solo alla fine del tuo
sai post salvare salvare hit go funked
risolto il problema , riscrive il tuo
il codice che conosci è allineato
con le specifiche ora non ho
avere questo argomento sempre più è
semplicemente non produttivo lo sai dopo
ottimo strumento per la catena di utensili vai alla prova
quindi è probabilmente estremamente comune
tutti in questa stanza se non l’ hai fatto
detto questo dovresti probabilmente iniziare
dicendo questo più spesso l’inizio di
ogni progetto di sviluppo qualcuno va
okay, come testeremo questa cosa
andare viene con un quadro cotto a
risolvi quel problema e viene con te
conoscere i test unitari e viene fornito con
eseguendo test quindi ecco un codice
esempio che è quasi quasi
cadere dalla pagina
quindi è davvero una specie di stupido ed elementare
così gentile da sopportare me ne ho tre
funzioni uno più uno uguale a tre
impressionante due più due uguale a quattro tutti
giusto che sia bello e poi lo sai
aggiungere alcune zecche insieme qui ho
il mio test quindi uno più uno dovrebbe effettivamente
sii troppo
fresco e poi quattro più tre più due
più uno dovrebbe essere dieci fantastico così io sono
andando eseguire il mio cotto in Tess e si ottengo
sapere con con un profilo di copertura
quindi ovviamente uno più uno dovrebbe
in realtà sono due quindi è il mio fallimento
messaggio e mi sono perso quel secondo
funzione due più due non l’ho fatto
quindi la copertura ha mancato la copertura e poi
se effettivamente vado a fare lo strumento,
mi aiuta a sapere salvare un file HTML che
mi mostra queste cose che mi mostrerà
il percorso del codice colorato che non è coperto
è un po ‘come se il prossimo fantastico strumento
la catena è il rilevatore di gare quindi menziona
alcuni di quei costrutti di concorrenza
quelli sono davvero eleganti ma se non lo sei
attento che puoi effettivamente creare
deadlock e condizioni di gara e il
la bandiera di gara è disponibile in go test go
build go run e causerà solo a
panico quando rileva che c’è un
condizioni di gara fallo per favore nel tuo
codice se usi queste cose è davvero
importante fare questo e poi finalmente andare
vet go veterinario è che è interessante perché
è come un euristico che aiuta a mostrarlo
ti dice quando potresti aver usato
qualcosa di sbagliato, quindi se lo hai
come un tag JSON e sai usarlo
in modo errato o se si dispone di printf e
hai segnaposto non corrispondenti a simili
ti dirò quelle cose che il
il compilatore non prenderà già e
in realtà il compilatore ne cattura così tanti
cose che sai questo è solo gentile
di un bel componente aggiuntivo quindi non lo so
come per me, dove tutto questo bolle
fino a che si sente davvero
produttivo giusto esce la lingua
del modo in cui e per me forse intendo che lo è
solo una cosa personale che conosco ci sono
persone dalla matematica dei media in questa stanza che
sarebbe in questa stanza che non sarebbe d’accordo
con questo e questo è assolutamente bello ma io
come i vincoli non mi dispiace
vincoli i vincoli più il
gli strumenti mi fanno sentire più produttivo e
mi permette di concentrarmi sulla cosa che io
in realtà mi interessa di più di ciò che è
spedire un buon prodotto e abbiamo
giusto così nel 2013 abbiamo avuto no-go cose e
nel 2015 abbiamo infinitamente di più andare
cose così se volevi disegnare questo
line out sarebbe sembrato molto simile
una mazza da hockey e se ci sono dei VC
nella stanza prendo sicuramente degli assegni
perché la trazione è così veloce
in realtà questa è come la mia parte preferita
del calzino perché ci proverò
far incazzare tutti nella stessa stanza
ho raccolto la ciliegia nei prossimi quattro
fa scorrere una serie di benchmark che mostrano
come andare è più veloce del tuo preferito
lingua in realtà alcuni dei nostri preferiti
le lingue in realtà non provano nulla
a parte me posso google cose così sì
va bene così va contro C ++ è come
circa veloce penso che tu sappia un po ‘qui
in grassetto più veloce di C ++ che è bello il
resto penso che sia come l’ordine di
magnitudine lo stesso sì fantastico tutto
destra
oh bello
Ruby sì, amiamo Ruby, siamo enormi
gli utenti di Ruby distruggono solo Ruby intendo
dai un’occhiata a quel 16 contro l’uomo da 7,99 dollari
Non so nemmeno quali siano questi numeri
ma è molto diverso
andare contro purl così così in realtà siamo davvero
ama la perla come amiamo le perle così tanto
andiamo alle conferenze sulla perla che diamo alla perla
parla che stiamo andando sul mare Yap
quest’anno per parlare di come ci stiamo muovendo
da Pearl ad andare in modo che possa essere un po ‘
strano ma piace anche sostanzialmente più veloce
okay, quindi sono a una conferenza di Java, quindi
Devo parlare di Java o almeno
ci si sente come se ci fosse un sacco di Java
qui spero davvero che come colpevole e
chiunque da Oracle non è nella stanza
perché non chiamarmi su questo ma se tu
può vedere andare è anche l’ordine di grandezza come
veloce o leggermente più veloce di Java
eccezionale
e nodo yeah node questo è il mio preferito
incontrando questo punto di riferimento perché è un
rappresentazione chiara e ovvia del reale
lavoro che è fatto nel nodo che è
altrimenti noto è bubble sort così sì
proprio come una nota nota della bambola Ryan che ha costruito
nodo e TJ Holloway Chuck che hanno costruito
tutto il resto nel nodo passa a
vai così dicendo, ma seriamente se ne vada
in realtà piuttosto veloce come ho detto noi
avere come un 21 23 servizi di ish in esso
eccone alcuni che sono una specie di ciliegia
scelto per questo talk DC è la dinamica
servizio creativo è come questa cosa
quello che prende richieste di aggiunte e
genera automaticamente la creatività
insieme e sappiamo che è atterrato sul 95
percentuale di latenza inferiore a 10 millisecondi
due box per datacenter per la gestione live
traffico amaro
questo è davvero un sollievo perché è così
è economico farlo funzionare con i pattini a rotelle
come una piccola VM per pop che è
gestire tutte le impressioni di produzione
metriche su cinque dimensioni arrotolate in
tre diversi intervalli di tempo credo
super economico off go gestisce tutto il
il traffico per questa cosa è il
servizio di autorizzazione un millisecondo 95
percentile due scatole per pop
Plex è semplicemente un a è banale
è una richiesta web multiplexer
multiplexer attualmente sta facendo un po ‘
oltre centomila richieste in
limiti per nodo ed è quasi
completamente confinato con kernel
estremamente piccolo nessuno di questi
ho preso dei progetti, penso che la base abbia preso
una settimana due settimane per costruire penso che il
la ragione è importante sia da a
Prospettiva di produttività e a
prospettiva delle prestazioni è quella qualsiasi
risposta nel tuo sistema di distribuzione
attraverso i tuoi micro-servizi
accartocciati tra più diversi
servizi è solo veloce come il tuo
collegamento più lento, quindi ecco la richiesta
ci sono voluti 112 millisecondi 94 millisecondi
di quello è stato speso in questa unica funzione
devi assicurarti che il tuo critico
il percorso è veloce, se non è intero
cosa essere lento e questo è comune
giusto dal modo in cui questo strumento è chiamato
Zipkin se non hai familiarità con esso
è la distribuzione distribuita su Twitter
quadro se vuoi farlo schifo ora
Sto dimenticando il nome dello strumento
comunque è possibile ottenere i tuoi dati di viaggio
in Zipkin, tutto bene così abbiamo fatto
ho parlato molto di come andare è il più veloce
cosa sulla terra come la otteniamo lì
abbastanza semplice, quindi il primo è
fare test e testare B di cui ho parlato
come fai a fare test sai le prestazioni
testare i test B è quella cosa che fa
test di prestazione iterativi basati su loop
ed è cotto in test di go quindi puoi
effettivamente eseguire questi test delle prestazioni come
parte della tua suite di test come parte del tuo
pre-commit del ciclo di vita come parte di
test di integrazione come parte di qualsiasi cosa
fase di test che si desidera
introdurlo qui un esempio di me
eseguire questa funzione di un nachi
funzione b e x che fa parte del
test B e ci sono voluti cinquecento nano
Il nuovo attrezzo di SEC è anche interessante
parte della catena di utensili P prop così grazie
tu google per questo P prop è il
il profiler di campionamento viene fornito con
visualizzazione che stai vedendo bene
ora e anche una buona quantità di
strumenti da riga di comando I
in realtà trascorrere più tempo rispetto al commit
strumenti e non ho quel bel grafico
utile anche se te lo dice
in pratica quanto tempo viene speso
in quale parte del tuo codice può anche
dirti dove stai allocando quale
è importante per la garbage collection e
è generalmente molto utile per
capire cosa è in realtà il tuo codice
facendo in questo modo da utilizzare questo se si desidera
capire dove sono i tuoi percorsi di hot code
o dove passi la maggior parte del tempo
tempo utente e in questo modo devi indovinare
meno che va bene è una spazzatura
linguaggio raccolto è giovane, giusto è
non così vecchio come Java ha molto da fare
impara da Java e dalla JVM in questo
senso ma è ancora spazzatura raccolta
nella raccolta dei rifiuti non è abbastanza
ottimo ancora così evita di creare spazzatura se
non vuoi occuparti della spazzatura
la collezione sicuramente fa questo dopo il tuo
il codice è scritto bene non farlo presto
Ottimizzazione altrimenti prematura
sorta di cosa, ma la diapositiva precedente
p-per fuori te lo dirà
allocazioni ti dirà dove il
GC sta arrivando da te puoi sicuramente usare
per sintonizzare alcuni dei non necessari
allocazioni se ce ne sono altre
la cosa bella è che andare ha un 6 mesi
ciclo di rilascio e spendono molto
tempo dedicato alle prestazioni e
toolchain e garbage collection
Credo che 1.5 presenterà
collezioni concorrenti così come la
davvero pesante fermare la collezione mondiale
sarà Penso che un po ‘meno
incisivo noi ancora a vederlo davvero
giocato ma sai spero che lo sia
è lì, va bene, procedi così noi
parlato un po ‘di routine e and
canali e come ci sia concorrenza
primitivi cotti nella lingua ma
che dire del parallelismo go max procs è a
impostazione che fondamentalmente ti permette di sintonizzare il
numero di thread del sistema operativo
il codice gira su così inizialmente si va oh bello
impostalo su 18 8 o 16 o 32 o su quanti
conosci le CPU fisiche della tua dimensione della scatola
anima il tuo box house ma in molti casi
tutto ciò che fa è aumentare la contesa
prova prima di impostare non solo eseguire cieco
La cosa a cui mi sono imbattuto a caso ha fatto il
altro giorno stava tramontando go max proc a
in realtà non si arresta il funzionamento
sistema da eseguire su più
core che ha senso, ma io ero un
un po ‘confuso mentre stavo pagando
tutto a caso è possibile, okay
il canale successivo è magico, quindi io
penso di aver parlato un po ‘di
canali andare routine hanno in realtà
ti ho mostrato un esempio di questo così questo
è un esempio di entrambi questo è il mio principale
funziona è davvero stupido
funzione così echo è eco è una funzione
che fondamentalmente richiede un canale in ascolto
sul canale ogni volta che riceve un
la stringa sul canale fa eco al canale
o la stringa così qui che sto creando
che come una routine di go che è un falso
dire efficacemente eseguire questa funzione
contemporaneamente e quindi sto inviando il
incanalare questi messaggi in modo tale da questi messaggi
sono solo archi
quindi la stringa Chan è il tipo di
il canale e così sto inviarlo
aspettando un secondo mandandolo in attesa a
secondo è tutto ciò che è fantastico
costruire è davvero utile ma
sfortunatamente non è in realtà magico
c’è ancora un blocco mutex così giusto
considerare che ogni volta che si utilizza
di nuovo se sei sintonizzato vai procs max
sei solo in alcuni casi potresti non farlo
anche rendersi conto che stai aumentando
contesa perché più cose saranno
sostenendo che il blocco sì tutto bene
interfacce così vuote, quindi interfacce vuote
sono interfacce senza metodi che sono
tipo di un altro modo di dire partita
contro tutti i tipi di sicuro se il tuo
l’ argomento della funzione specifica un vuoto
interfaccia quindi accetterà qualsiasi tipo
e questo è a scapito delle prestazioni
giusto, ecco un esempio di alcuni
tutto di qualsiasi tipo qui è un esempio
di alcuni solo intz e perché runtime
tipo di controllo del tipo è lento si ottiene questo
la differenza ridicola qui non lo so
è stato come 60 volte che rallenta di nuovo no
preoccupati di questo fino a dopo i tuoi codici
fatto sì differire super super conveniente
quindi questa è una parola chiave che efficacemente
ti permette di dire che sto andando a chiudere questi
buffer di file o allocatori o sai
canali o qualsiasi altra cosa quando ho finito
la funzione di cui non devo preoccuparmi
facendolo manualmente sai se non l’ho fatto
fare questo devo metterlo in tutti questi di
luoghi diversi in cui si conosce l’errore
la gestione è fatta qui e forse al
fine della funzione e così via e così via
avanti non devo farlo ora che posso
basta farlo quando va bene, piuttosto che posso
lascia andare decidere uno a farlo in base al
lo svolgimento della pila, naturalmente, questo è
anche lento perché ora quello che sto facendo è
Sto dicendo di andare a tenere traccia di un altro
cosa per rilassarsi come parte della pila così
sai che penso che stia dicendo ma
forse nel caso della tua domanda
questo potrebbe essere più significativo di diciotto
megabyte al secondo contro sei
megabyte al secondo di throughput di nuovo
dipende solo da cosa stai facendo e
poi finalmente GCC andare
quindi, andare non è solo un’implementazione di
lingua c’è anche una specifica di
lingua in modo che abbiano preso di mira il
compilazione della lingua anche contro
GCC in modo da poter creare go codice con GCC
e questo è buono perché si abitua
conosci il supporto per alcuni di questi
potenti ottimizzazioni sai oh tre
e qualunque cosa tu possa ottenere da GCC potrebbe essere
utile per carichi di lavoro legati alla CPU che potresti
voglio usare questo abbiamo provato che non l’abbiamo fatto
prendi molto da fare e anche noi
ha sprecato una buona quantità di tempo cercando di
capire perché così non so potrebbe essere
bene per te non ci correrei io
iniziarebbe con il codice ma se lo sei
sai chiedermi se posso ottenere solo
vale l’1% o il 2% dell’ultimo valore
provando bene quindi sarei negligente per parlare
su questo senza realmente parlare
su alcune delle cose che non ci piacciono
circa andare
Io personalmente sto bene con alcuni di questi
cose ma so che ci piacciono i media
la matematica nel complesso con cui alcuni di noi lottano
queste cose e che è ho assolutamente cool
pensa di non conoscere la lingua
perfetto ovviamente così il primo primo
cosa che penso strofina un sacco di gente
nel modo sbagliato è estremamente
supponente penso che la citazione che ho
leggere un milione di volte è come
sembra piacere ignorare completamente l’ultimo
20 anni di informatica va bene ho freddo
capiscilo capisco e nello specifico il
il veramente a quello che viene è
il sistema di tipo limitato che credo
solo un altro modo di dire niente di generico
quindi è un po ‘un dolore, sì, lo faremo
lasciare lì anche non ha eccezioni
quindi il modo in cui sei il modo idiomatico
di gestire gli errori è efficace
più dichiarazioni di reso in modo che il tuo
il ritorno avrà come il primo o il
secondo qualunque siano i primi argomenti
sarà ciò che ti aspetti realmente
l’ultimo sarà il caso di errore che puoi
fallo e vai è molto comune e tu
ho anche il panico, ma penso molto
le persone probabilmente preferiscono l’eccezione
maneggiamento e presa e lancio e
Così via
terza cosa penso che si ottiene la gente a
lotto è questa nozione di andare idiomatica è
fondamentalmente l’ idea che tutto vada a codice
dovrebbe essere articolato ma conciso
fornire commenti precisi ha un semplice
API ed essere leggibili, non ne conosco nessuno
che è controverso in alcun modo e il
la libreria standard è in realtà un grande
fonte di verità per ciò che è idiomatico
ma il problema con questa nozione che io
è è molto soggettivo e così
perché è così facile da afferrare per le persone
la lingua e come andare semplicemente correndo
con esso ha creato alcuni estremamente
tiro interessante richieste di conversazione
nella nostra azienda dove ne hai 50
i commenti di te conoscono esistenziali
argomenti più se questo è il giusto
modo di fare le cose o cosa è idiomatico o
cosa intendevano veramente gli sviluppatori di go
quando hanno detto questo e si II
lotta con quello perché io
capisci completamente perché
vorresti farlo e anche io no
conosci un modo nido per condurre una nuova avventura
sviluppatore per la risposta diversa dal piombo
e pratica e guarda il fantasma
la fonte non è che tu sappia la super fantasia
gestione delle dipendenze quindi vai ad essere
sviluppato principalmente su Google quei ragazzi
hanno una loro enorme dipendenza
soluzione di gestione e hanno quasi
gestione della dipendenza differita al
comunità penso di aver letto forse quattro
o cinque commenti di Andrew Girard e
Rob Pike e Khoa sostanzialmente stanno dicendo
questo è un problema di comunità che voi ragazzi potete
risolvilo da solo ma che cosa
significa davvero è come l’importazione
dichiarazioni penso che voi ragazzi possiate avere
visto in alcuni dei commenti o alcuni di
gli esempi di codice che hai prima
nessun modo di dire che un pacco sia bloccato
questo particolare commette e questo è un dolore
perché sai per appuntarlo a
/ – un commit è necessario assicurarsi che
sei hanno che si impegnano nel tuo andare locali
percorso che è solo un altro modo di dire
ven durante è il modo migliore di fare le cose
e se sembra che siamo tornati indietro
a 90 anni probabilmente è perché ce ne siamo andati
torna agli anni ’90 quindi penso molto molto no
problema e poi finalmente spazzatura
raccolta sì è quello che è giusto
quindi se hai bisogno di un controllo più granulare
sul tuo rendimento rispetto alla tua latenza
forse non usare go , non so di no
abbiamo bisogno di accedere alle macchine primitive che facciamo
tutto questo su una scala incredibile e noi
si sa ancora sembrano fare bene da
solo usando i meccanismi e i metodi
che ho menzionato prima ma solo
qualcosa di cui essere a conoscenza di nuovo java a
Anche il linguaggio GC così penso
probabilmente tutti sentono questo dolore in alcuni
in un modo o nell’altro penso che sia tutto per me
Mi piacerebbe prendere le domande Spero che questo è
utile
oh e stiamo assumendo
matematica per un’azienda di tecnologia pubblicitaria che è
coinvolto nell’aiutare come la fortuna 500
aziende dai media digitali così provando a
pensa come il modo migliore per descriverlo
vai su un sito web è come questo
lo spazio pubblicitario per banner si presenta in alto a destra
tutti amano quelli che sono in realtà
determinato su e calcolato in reale
tempo c’è un’asta che ci piace
circa 40 millisecondi per decidere noi
vuoi partecipare a quell’asta?
vuole comprare in realtà che che
impressione e succede circa due e
un mezzo milione di volte al secondo globalmente
e quindi per questo dobbiamo fare un
molte decisioni molto rapide molto rapidamente
dobbiamo analizzare molti dati così
come i costi delle impressioni individuali come
forse un centesimo o un centesimo di a
centesimo o giù di lì, ma le campagne che questi
le aziende stanno funzionando o non lo so
come 10 milioni di dollari all’anno o 50
milioni di dollari all’anno e in genere
maturano come se volessi vendere di più
di questo prodotto e quindi sostenendo tale obiettivo
di come vendere più di questo prodotto
dentro comprerò questo particolare slot
perché è come il momento giusto per comprare
questa area annuncio è ciò che siamo bravi a farlo
quello che facciamo davvero bene così come me
menzionato due milioni e mezzo
richieste al secondo circa novantanove
punto nove due percento di quello
il percentile è sotto i quaranta millisecondi
facciamo un centinaio di venti terabyte
di analisi dei dati ogni singolo giorno e
questo accade attraverso nove diversi dati
centri più nuvola roba e lo facciamo
in un sacco di un sacco di lingue diverse
Penso che tu sappia che Scala potrebbe essere l’unica
che abbiamo spinto più duramente e investito
più difficile nella storia più recente
ma abbiamo anche un sacco di C ++ un sacco di
andare di cui parlerò
parlare di un secondo Python Ruby Perl
PHP e so che mi manca più questo
la diapositiva è solo così lunga quindi sì sì parla
davvero su due cose in particolare come
go help media math perform e come
facciamo andare a esibirci un po ‘di così
un po ‘di entrambi, quindi inizia con
prima cosa un po ‘di contesto in
2012
avevamo un gigantesco monolite API
quindi tutto ciò che facciamo ha API tutto
è dotato di un’API siamo davvero grande
credenti come la visione della piattaforma
e il nostro stack API che sai è quello
tipo di scatola nera tutto sotto di esso
era una grande API e funzionava
fuori davvero bene per un po ‘di tempo, ma abbiamo
stato circa il sessanta per cento
crescita anno su anno, quindi quando ho iniziato
andato a Mia’s acquisito a dicembre
del 2012 penso che siamo circa 120 persone
e ora siamo circa 650 persone e oltre
il modo in cui abbiamo realizzato sei tecnologie
acquisizioni e tredici nuovi prodotti
linee e quindi amo che ci fosse un
La legge di Conway parla perché io fortemente
credo che sia come una cosa reale e quindi noi
avevo bisogno di un modo per risolvere questo da un
prospettiva organizzativa in realtà
sostenere la rapida crescita che eravamo
subendo penso che penso sia stato detto
ieri, ma come ho davvero credo
come una migrazione a così è più su un
soluzione organizzativa a un tecnico
problema piuttosto che come una soluzione tecnica
così così qui siamo 2015 è un po ‘
un po ‘meno monolite II giusto, così abbiamo fatto a
gran parte del lavoro di scomposizione e abbiamo
mosso un sacco di cose da quel monolite
dentro conosci un po ‘di più di a
servizio o un modello di Amara e abbiamo
un bel po ‘ di micro servizi oggi
se vuoi un primer su quello vorrei
consiglio davvero di guardare Rebecca
I Parsons parlano da ieri, lo penso
è stata una introduzione davvero solida in questo
e soprattutto se hai sentito il ragazzo
il retro ridacchia come quello che tu
non dovrei farlo, probabilmente sono io
perché ci piacciono tutte queste cose
che non dovresti fare ed essere stato
apprendimento così fondamentalmente nel processo di
risolvere per quei problemi che abbiamo creato
come una serie completamente nuova di problemi, giusto
quindi amo questo ragazzo perché è scontroso
Sono scontroso
quindi in pratica è diventato il nostro simile
sistema complesso di nuovo menzionato nove
data center più cloud più tutto questo
dati già complessi in un sistema uniforme
sistema più complesso
ha reso le dipendenze e il fallimento
lo scenario è ancora più complicato e
ancora di più
difficile da gestire e, a causa di ciò
sai che ha creato questo peso sul nostro
ingegneri per riflettere su queste cose
sai una base ancora più granulare
quello che hanno prima della ancora essere
servizi disaccoppiati di nuovo come andare
attraverso quel processo di transizione che hai
passare attraverso lo sforzo di realtà
disaccoppiare e scomporre le cose se
non è abbastanza lì, ma i tuoi team hanno
già fatto questo tipo di dispersione
gestione di quel codebase su più unità
diverse squadre è un dolore gigante nel
ASS che erano penso ancora un po ‘
cercare di risolvere la scoperta del servizio è ora
come in realtà un problema di prima classe
giusto così con i nuovi servizi che escono
le nuove versioni arrivano e tu sai
ci potrebbero essere 30 40 50 penso alcuni di
voi ragazzi probabilmente avete familiarità con il
Grafico di accordi di Netflix di 200 300 come
diversi servizi tutti parlano a ciascuno
altro senza come quello che viene gestito
modo automatizzato è sorta di impazzire
credo che la matematica dei media in realtà si accoppia
Ops persone qui che vivono un po ‘
di quel dolore adesso
gestire gli ambienti è davvero doloroso
quindi sai che abbiamo questa convinzione
automazione che io voglio provare il mio
cosa contro qualcosa che è reale
invece di un po ‘di shell e così via
significa che ho bisogno della mia cosa e ho bisogno del tuo
cosa e ho bisogno di loro per vivere in un
ambiente isolato in modo da poter testare il mio
cosa contro la tua cosa senza il
automazione per sostenere queste due cose
cosa fai bene devi gestire
tutto questo manualmente è una specie di dolore
e poi si presenta come un intero slew
dei problemi dei sistemi distribuiti perché
hai appena creato una superficie per a
una tonnellata di incoerenza extra, quindi se tu
non concentrarsi veramente sull’automazione degli strumenti
potrebbe essere fregato così la mia opinione va
in realtà lo rende piuttosto facile da risolvere
alcuni di questi problemi e ce ne sono alcuni
alcune diverse ragioni per questo
così i primi sono relativamente semplici
facile da creare servizi da zero ora
So che abbiamo appena detto che avere di più
tipo di servizi di creare alcuni di questi
problemi ma come si scopre come te
può anche creare servizi specifici per
risolvere questi problemi e perché è
un linguaggio così semplice c’è molto
bassa impronta mentale al primo servizio
che ho scritto e vado penso l’ho preso
mi ha preso forse un weekend per imparare entrambi
la lingua e costruisci una prova di
concetto come uno significativa
e penso che sia una sensazione molto comune
Mi sento come se ci fossero un paio di persone
annuendo come quello è qualcosa
che mi sono davvero attaccato presto
su di esso in compilazione super veloce a a
binario statico quindi ci sono due parti di
quello che è davvero importante se
sei mai stato rovinato da un sai
interpretare il linguaggio è davvero bello
essere in grado di colpire salvare e come vedere il
risultato molto velocemente puoi farlo
con go puoi aggiungere un commit o un hook
post giusto salva gancio sul tuo IDE e
fallo ricostruire la cosa perché?
prende io non so un secondo o due a
costruisci il tuo binario e poi puoi copiare
detto binario dalla tua macchina a
produzione se si desidera o messa in scena
se volevi o qualsiasi altra cosa perché
è solo un binario non c’è JVM
non ci sono dipendenze o niente è
solo il binario statico che ha incorporato
costrutti di concorrenza così è
sicuramente non unico per la lingua
ci sono altre lingue che hanno un
molti di noi, ma sai che è andata
routine e ha canali di routine
che ti permettono di eseguire le funzioni
contemporaneamente e canali che consentono
per passare i messaggi tra loro e
parleremo un po ‘ della magia
ma è qualcosa di così gentile
di aiuti aiuta a renderlo un po ‘più facile
di non preoccuparsi per il problema di come
come faccio a farle andare
routine o qualsiasi cosa parlare o come sono
riuscirò a far funzionare la mia concorrenza senza
introducendo tutte queste cose conosci il fallimento
scenari invece posso solo sapere
sfruttare il costrutto del linguaggio
per risolvere questo problema per me e poi
finalmente ha un fantastico soggiorno nel
biblioteca quindi la fantastica libreria standard
quando dico che è fantastico è davvero
fantastico in molti casi, se lo sei
cercando di costruire qualcosa da zero
potresti non aver bisogno di alcuna dipendenza
qualsiasi dipendenza di terze parti
ora dipende solo da quanto sei ambizioso
sono, ma io tipo di ciliegio ne ho scelti alcuni
diversi esempi di alcune delle cose
che uso regolarmente così mi piace
il pacchetto di rete in modo netto HCP e così via
e così via è fantastico, in realtà
un ottimo esempio di andare idiomatico
e c’è è penso che sia estremamente
banale per creare un server HTTP solo
mi scusi in cima a quella codifica JSON
giusto tonnellate di tonnellate di codifica non solo
JSON ma tu lo sai
qualsiasi altro formato in cui sono cotti
quella gestione del sistema operativo di sistema
sai affondare e affondare tutto atomico
la tua manipolazione di stringhe e byte
funzionalità di compressione delle funzionalità
e molti di voi conoscono la cripto
i pacchetti là fuori sono di nuovo molto semplici
per creare qualcosa da zero usando
solo quello che esce dalla scatola ma se
quello che non sai non risolve il tuo
problema da solo e tu non vuoi
essere tanto ambizioso che in realtà c’è un
comunità relativamente vivace attualmente
quello che sai ha generato molto
diverse librerie e strumenti e quelli
sei a conoscenza dei casi d’uso di
scoperta e contenitore di servizi
gestione e configurazione gestione
algoritmi di consenso e pettegolezzi e
database nativi che distribuiscono cache e
strumenti di monitoraggio e non so come
20 test delle prestazioni dei framework web
che avrebbe preso traccia come ecc
molti di quei problemi che menzionano presto
su circa come queste sono le cose queste
sono i problemi che ho creato ora
passando a un gruppo di micro servizi
ci sono strumenti in viaggio e una comunità
in giro risolvendo esattamente quelle cose dopo
cosa è in realtà è la catena di strumenti
grande
Probabilmente potrei finire su questo scivolo come
Potrei solo dire che questo è il migliore
cosa e poi potremmo finire e poi andare
birra o qualcosa del genere
andare funked è fantastico come non lo so
come affermarlo lo voglio in ogni
una sola lingua come go func è il
cosa più bella di sempre
quanti di voi ragazzi avete visto questo
commetti bene, ovviamente sono il più
sviluppatore produttivi nel mondo e
tutto quello che ho fatto qui è cambiato
spazi per le schede perché le schede sono
decisamente meglio degli spazi e se tu
non sono d’accordo con me, ti sbagli, ma cos’è?
bello questo è che non devo mai avere
questo argomento di nuovo mai perché il
le specifiche del linguaggio in realtà definiscono
il formato e c’è uno strumento da applicare
bene quindi non abbiamo mai dovuto parlare di
questo se vuoi lo spazio come sempre
cool, lo fai solo alla fine del tuo
sai post salvare salvare hit go funked
risolto il problema , riscrive il tuo
il codice che conosci è allineato
con le specifiche ora non ho
avere questo argomento sempre più è
semplicemente non produttivo lo sai dopo
ottimo strumento per la catena di utensili vai alla prova
quindi è probabilmente estremamente comune
tutti in questa stanza se non l’ hai fatto
detto questo dovresti probabilmente iniziare
dicendo questo più spesso l’inizio di
ogni progetto di sviluppo qualcuno va
okay, come testeremo questa cosa
andare viene con un quadro cotto a
risolvi quel problema e viene con te
conoscere i test unitari e viene fornito con
eseguendo test quindi ecco un codice
esempio che è quasi quasi
cadere dalla pagina
quindi è davvero una specie di stupido ed elementare
così gentile da sopportare me ne ho tre
funzioni uno più uno uguale a tre
impressionante due più due uguale a quattro tutti
giusto che sia bello e poi lo sai
aggiungere alcune zecche insieme qui ho
il mio test quindi uno più uno dovrebbe effettivamente
sii troppo
fresco e poi quattro più tre più due
più uno dovrebbe essere dieci fantastico così io sono
andando eseguire il mio cotto in Tess e si ottengo
sapere con con un profilo di copertura
quindi ovviamente uno più uno dovrebbe
in realtà sono due quindi è il mio fallimento
messaggio e mi sono perso quel secondo
funzione due più due non l’ho fatto
quindi la copertura ha mancato la copertura e poi
se effettivamente vado a fare lo strumento,
mi aiuta a sapere salvare un file HTML che
mi mostra queste cose che mi mostrerà
il percorso del codice colorato che non è coperto
è un po ‘come se il prossimo fantastico strumento
la catena è il rilevatore di gare quindi menziona
alcuni di quei costrutti di concorrenza
quelli sono davvero eleganti ma se non lo sei
attento che puoi effettivamente creare
deadlock e condizioni di gara e il
la bandiera di gara è disponibile in go test go
build go run e causerà solo a
panico quando rileva che c’è un
condizioni di gara fallo per favore nel tuo
codice se usi queste cose è davvero
importante fare questo e poi finalmente andare
vet go veterinario è che è interessante perché
è come un euristico che aiuta a mostrarlo
ti dice quando potresti aver usato
qualcosa di sbagliato, quindi se lo hai
come un tag JSON e sai usarlo
in modo errato o se si dispone di printf e
hai segnaposto non corrispondenti a simili
ti dirò quelle cose che il
il compilatore non prenderà già e
in realtà il compilatore ne cattura così tanti
cose che sai questo è solo gentile
di un bel componente aggiuntivo quindi non lo so
come per me, dove tutto questo bolle
fino a che si sente davvero
produttivo giusto esce la lingua
del modo in cui e per me forse intendo che lo è
solo una cosa personale che conosco ci sono
persone dalla matematica dei media in questa stanza che
sarebbe in questa stanza che non sarebbe d’accordo
con questo e questo è assolutamente bello ma io
come i vincoli non mi dispiace
vincoli i vincoli più il
gli strumenti mi fanno sentire più produttivo e
mi permette di concentrarmi sulla cosa che io
in realtà mi interessa di più di ciò che è
spedire un buon prodotto e abbiamo
giusto così nel 2013 abbiamo avuto no-go cose e
nel 2015 abbiamo infinitamente di più andare
cose così se volevi disegnare questo
line out sarebbe sembrato molto simile
una mazza da hockey e se ci sono dei VC
nella stanza prendo sicuramente degli assegni
perché la trazione è così veloce
in realtà questa è come la mia parte preferita
del calzino perché ci proverò
far incazzare tutti nella stessa stanza
ho raccolto la ciliegia nei prossimi quattro
fa scorrere una serie di benchmark che mostrano
come andare è più veloce del tuo preferito
lingua in realtà alcuni dei nostri preferiti
le lingue in realtà non provano nulla
a parte me posso google cose così sì
va bene così va contro C ++ è come
circa veloce penso che tu sappia un po ‘qui
in grassetto più veloce di C ++ che è bello il
resto penso che sia come l’ordine di
magnitudine lo stesso sì fantastico tutto
destra
oh bello
Ruby sì, amiamo Ruby, siamo enormi
gli utenti di Ruby distruggono solo Ruby intendo
dai un’occhiata a quel 16 contro l’uomo da 7,99 dollari
Non so nemmeno quali siano questi numeri
ma è molto diverso
andare contro purl così così in realtà siamo davvero
ama la perla come amiamo le perle così tanto
andiamo alle conferenze sulla perla che diamo alla perla
parla che stiamo andando sul mare Yap
quest’anno per parlare di come ci stiamo muovendo
da Pearl ad andare in modo che possa essere un po ‘
strano ma piace anche sostanzialmente più veloce
okay, quindi sono a una conferenza di Java, quindi
Devo parlare di Java o almeno
ci si sente come se ci fosse un sacco di Java
qui spero davvero che come colpevole e
chiunque da Oracle non è nella stanza
perché non chiamarmi su questo ma se tu
può vedere andare è anche l’ordine di grandezza come
veloce o leggermente più veloce di Java
eccezionale
e nodo yeah node questo è il mio preferito
incontrando questo punto di riferimento perché è un
rappresentazione chiara e ovvia del reale
lavoro che è fatto nel nodo che è
altrimenti noto è bubble sort così sì
proprio come una nota nota della bambola Ryan che ha costruito
nodo e TJ Holloway Chuck che hanno costruito
tutto il resto nel nodo passa a
vai così dicendo, ma seriamente se ne vada
in realtà piuttosto veloce come ho detto noi
avere come un 21 23 servizi di ish in esso
eccone alcuni che sono una specie di ciliegia
scelto per questo talk DC è la dinamica
servizio creativo è come questa cosa
quello che prende richieste di aggiunte e
genera automaticamente la creatività
insieme e sappiamo che è atterrato sul 95
percentuale di latenza inferiore a 10 millisecondi
due box per datacenter per la gestione live
traffico amaro
questo è davvero un sollievo perché è così
è economico farlo funzionare con i pattini a rotelle
come una piccola VM per pop che è
gestire tutte le impressioni di produzione
metriche su cinque dimensioni arrotolate in
tre diversi intervalli di tempo credo
super economico off go gestisce tutto il
il traffico per questa cosa è il
servizio di autorizzazione un millisecondo 95
percentile due scatole per pop
Plex è semplicemente un a è banale
è una richiesta web multiplexer
multiplexer attualmente sta facendo un po ‘
oltre centomila richieste in
limiti per nodo ed è quasi
completamente confinato con kernel
estremamente piccolo nessuno di questi
ho preso dei progetti, penso che la base abbia preso
una settimana due settimane per costruire penso che il
la ragione è importante sia da a
Prospettiva di produttività e a
prospettiva delle prestazioni è quella qualsiasi
risposta nel tuo sistema di distribuzione
attraverso i tuoi micro-servizi
accartocciati tra più diversi
servizi è solo veloce come il tuo
collegamento più lento, quindi ecco la richiesta
ci sono voluti 112 millisecondi 94 millisecondi
di quello è stato speso in questa unica funzione
devi assicurarti che il tuo critico
il percorso è veloce, se non è intero
cosa essere lento e questo è comune
giusto dal modo in cui questo strumento è chiamato
Zipkin se non hai familiarità con esso
è la distribuzione distribuita su Twitter
quadro se vuoi farlo schifo ora
Sto dimenticando il nome dello strumento
comunque è possibile ottenere i tuoi dati di viaggio
in Zipkin, tutto bene così abbiamo fatto
ho parlato molto di come andare è il più veloce
cosa sulla terra come la otteniamo lì
abbastanza semplice, quindi il primo è
fare test e testare B di cui ho parlato
come fai a fare test sai le prestazioni
testare i test B è quella cosa che fa
test di prestazione iterativi basati su loop
ed è cotto in test di go quindi puoi
effettivamente eseguire questi test delle prestazioni come
parte della tua suite di test come parte del tuo
pre-commit del ciclo di vita come parte di
test di integrazione come parte di qualsiasi cosa
fase di test che si desidera
introdurlo qui un esempio di me
eseguire questa funzione di un nachi
funzione b e x che fa parte del
test B e ci sono voluti cinquecento nano
Il nuovo attrezzo di SEC è anche interessante
parte della catena di utensili P prop così grazie
tu google per questo P prop è il
il profiler di campionamento viene fornito con
visualizzazione che stai vedendo bene
ora e anche una buona quantità di
strumenti da riga di comando I
in realtà trascorrere più tempo rispetto al commit
strumenti e non ho quel bel grafico
utile anche se te lo dice
in pratica quanto tempo viene speso
in quale parte del tuo codice può anche
dirti dove stai allocando quale
è importante per la garbage collection e
è generalmente molto utile per
capire cosa è in realtà il tuo codice
facendo in questo modo da utilizzare questo se si desidera
capire dove sono i tuoi percorsi di hot code
o dove passi la maggior parte del tempo
tempo utente e in questo modo devi indovinare
meno che va bene è una spazzatura
linguaggio raccolto è giovane, giusto è
non così vecchio come Java ha molto da fare
impara da Java e dalla JVM in questo
senso ma è ancora spazzatura raccolta
nella raccolta dei rifiuti non è abbastanza
ottimo ancora così evita di creare spazzatura se
non vuoi occuparti della spazzatura
la collezione sicuramente fa questo dopo il tuo
il codice è scritto bene non farlo presto
Ottimizzazione altrimenti prematura
sorta di cosa, ma la diapositiva precedente
p-per fuori te lo dirà
allocazioni ti dirà dove il
GC sta arrivando da te puoi sicuramente usare
per sintonizzare alcuni dei non necessari
allocazioni se ce ne sono altre
la cosa bella è che andare ha un 6 mesi
ciclo di rilascio e spendono molto
tempo dedicato alle prestazioni e
toolchain e garbage collection
Credo che 1.5 presenterà
collezioni concorrenti così come la
davvero pesante fermare la collezione mondiale
sarà Penso che un po ‘meno
incisivo noi ancora a vederlo davvero
giocato ma sai spero che lo sia
è lì, va bene, procedi così noi
parlato un po ‘di routine e and
canali e come ci sia concorrenza
primitivi cotti nella lingua ma
che dire del parallelismo go max procs è a
impostazione che fondamentalmente ti permette di sintonizzare il
numero di thread del sistema operativo
il codice gira su così inizialmente si va oh bello
impostalo su 18 8 o 16 o 32 o su quanti
conosci le CPU fisiche della tua dimensione della scatola
anima il tuo box house ma in molti casi
tutto ciò che fa è aumentare la contesa
prova prima di impostare non solo eseguire cieco
La cosa a cui mi sono imbattuto a caso ha fatto il
altro giorno stava tramontando go max proc a
in realtà non si arresta il funzionamento
sistema da eseguire su più
core che ha senso, ma io ero un
un po ‘confuso mentre stavo pagando
tutto a caso è possibile, okay
il canale successivo è magico, quindi io
penso di aver parlato un po ‘di
canali andare routine hanno in realtà
ti ho mostrato un esempio di questo così questo
è un esempio di entrambi questo è il mio principale
funziona è davvero stupido
funzione così echo è eco è una funzione
che fondamentalmente richiede un canale in ascolto
sul canale ogni volta che riceve un
la stringa sul canale fa eco al canale
o la stringa così qui che sto creando
che come una routine di go che è un falso
dire efficacemente eseguire questa funzione
contemporaneamente e quindi sto inviando il
incanalare questi messaggi in modo tale da questi messaggi
sono solo archi
quindi la stringa Chan è il tipo di
il canale e così sto inviarlo
aspettando un secondo mandandolo in attesa a
secondo è tutto ciò che è fantastico
costruire è davvero utile ma
sfortunatamente non è in realtà magico
c’è ancora un blocco mutex così giusto
considerare che ogni volta che si utilizza
di nuovo se sei sintonizzato vai procs max
sei solo in alcuni casi potresti non farlo
anche rendersi conto che stai aumentando
contesa perché più cose saranno
sostenendo che il blocco sì tutto bene
interfacce così vuote, quindi interfacce vuote
sono interfacce senza metodi che sono
tipo di un altro modo di dire partita
contro tutti i tipi di sicuro se il tuo
l’ argomento della funzione specifica un vuoto
interfaccia quindi accetterà qualsiasi tipo
e questo è a scapito delle prestazioni
giusto, ecco un esempio di alcuni
tutto di qualsiasi tipo qui è un esempio
di alcuni solo intz e perché runtime
tipo di controllo del tipo è lento si ottiene questo
la differenza ridicola qui non lo so
è stato come 60 volte che rallenta di nuovo no
preoccupati di questo fino a dopo i tuoi codici
fatto sì differire super super conveniente
quindi questa è una parola chiave che efficacemente
ti permette di dire che sto andando a chiudere questi
buffer di file o allocatori o sai
canali o qualsiasi altra cosa quando ho finito
la funzione di cui non devo preoccuparmi
facendolo manualmente sai se non l’ho fatto
fare questo devo metterlo in tutti questi di
luoghi diversi in cui si conosce l’errore
la gestione è fatta qui e forse al
fine della funzione e così via e così via
avanti non devo farlo ora che posso
basta farlo quando va bene, piuttosto che posso
lascia andare decidere uno a farlo in base al
lo svolgimento della pila, naturalmente, questo è
anche lento perché ora quello che sto facendo è
Sto dicendo di andare a tenere traccia di un altro
cosa per rilassarsi come parte della pila così
sai che penso che stia dicendo ma
forse nel caso della tua domanda
questo potrebbe essere più significativo di diciotto
megabyte al secondo contro sei
megabyte al secondo di throughput di nuovo
dipende solo da cosa stai facendo e
poi finalmente GCC andare
quindi, andare non è solo un’implementazione di
lingua c’è anche una specifica di
lingua in modo che abbiano preso di mira il
compilazione della lingua anche contro
GCC in modo da poter creare go codice con GCC
e questo è buono perché si abitua
conosci il supporto per alcuni di questi
potenti ottimizzazioni sai oh tre
e qualunque cosa tu possa ottenere da GCC potrebbe essere
utile per carichi di lavoro legati alla CPU che potresti
voglio usare questo abbiamo provato che non l’abbiamo fatto
prendi molto da fare e anche noi
ha sprecato una buona quantità di tempo cercando di
capire perché così non so potrebbe essere
bene per te non ci correrei io
iniziarebbe con il codice ma se lo sei
sai chiedermi se posso ottenere solo
vale l’1% o il 2% dell’ultimo valore
provando bene quindi sarei negligente per parlare
su questo senza realmente parlare
su alcune delle cose che non ci piacciono
circa andare
Io personalmente sto bene con alcuni di questi
cose ma so che ci piacciono i media
la matematica nel complesso con cui alcuni di noi lottano
queste cose e che è ho assolutamente cool
pensa di non conoscere la lingua
perfetto ovviamente così il primo primo
cosa che penso strofina un sacco di gente
nel modo sbagliato è estremamente
supponente penso che la citazione che ho
leggere un milione di volte è come
sembra piacere ignorare completamente l’ultimo
20 anni di informatica va bene ho freddo
capiscilo capisco e nello specifico il
il veramente a quello che viene è
il sistema di tipo limitato che credo
solo un altro modo di dire niente di generico
quindi è un po ‘un dolore, sì, lo faremo
lasciare lì anche non ha eccezioni
quindi il modo in cui sei il modo idiomatico
di gestire gli errori è efficace
più dichiarazioni di reso in modo che il tuo
il ritorno avrà come il primo o il
secondo qualunque siano i primi argomenti
sarà ciò che ti aspetti realmente
l’ultimo sarà il caso di errore che puoi
fallo e vai è molto comune e tu
ho anche il panico, ma penso molto
le persone probabilmente preferiscono l’eccezione
maneggiamento e presa e lancio e
Così via
terza cosa penso che si ottiene la gente a
lotto è questa nozione di andare idiomatica è
fondamentalmente l’ idea che tutto vada a codice
dovrebbe essere articolato ma conciso
fornire commenti precisi ha un semplice
API ed essere leggibili, non ne conosco nessuno
che è controverso in alcun modo e il
la libreria standard è in realtà un grande
fonte di verità per ciò che è idiomatico
ma il problema con questa nozione che io
è è molto soggettivo e così
perché è così facile da afferrare per le persone
la lingua e come andare semplicemente correndo
con esso ha creato alcuni estremamente
tiro interessante richieste di conversazione
nella nostra azienda dove ne hai 50
i commenti di te conoscono esistenziali
argomenti più se questo è il giusto
modo di fare le cose o cosa è idiomatico o
cosa intendevano veramente gli sviluppatori di go
quando hanno detto questo e si II
lotta con quello perché io
capisci completamente perché
vorresti farlo e anche io no
conosci un modo nido per condurre una nuova avventura
sviluppatore per la risposta diversa dal piombo
e pratica e guarda il fantasma
la fonte non è che tu sappia la super fantasia
gestione delle dipendenze quindi vai ad essere
sviluppato principalmente su Google quei ragazzi
hanno una loro enorme dipendenza
soluzione di gestione e hanno quasi
gestione della dipendenza differita al
comunità penso di aver letto forse quattro
o cinque commenti di Andrew Girard e
Rob Pike e Khoa sostanzialmente stanno dicendo
questo è un problema di comunità che voi ragazzi potete
risolvilo da solo ma che cosa
significa davvero è come l’importazione
dichiarazioni penso che voi ragazzi possiate avere
visto in alcuni dei commenti o alcuni di
gli esempi di codice che hai prima
nessun modo di dire che un pacco sia bloccato
questo particolare commette e questo è un dolore
perché sai per appuntarlo a
/ – un commit è necessario assicurarsi che
sei hanno che si impegnano nel tuo andare locali
percorso che è solo un altro modo di dire
ven durante è il modo migliore di fare le cose
e se sembra che siamo tornati indietro
a 90 anni probabilmente è perché ce ne siamo andati
torna agli anni ’90 quindi penso molto molto no
problema e poi finalmente spazzatura
raccolta sì è quello che è giusto
quindi se hai bisogno di un controllo più granulare
sul tuo rendimento rispetto alla tua latenza
forse non usare go , non so di no
abbiamo bisogno di accedere alle macchine primitive che facciamo
tutto questo su una scala incredibile e noi
si sa ancora sembrano fare bene da
solo usando i meccanismi e i metodi
che ho menzionato prima ma solo
qualcosa di cui essere a conoscenza di nuovo java a
Anche il linguaggio GC così penso
probabilmente tutti sentono questo dolore in alcuni
in un modo o nell’altro penso che sia tutto per me
Mi piacerebbe prendere le domande Spero che questo è
utile
oh e stiamo assumendo
Please follow and like us: