Paras vastaus
K: Miksi ohjelmoijat sekoittavat aina Halloweenin ja joulun?
A: Koska 31. lokakuuta == 25. joulukuuta!
Kaksi tavua kohtaavat. Ensimmäinen tavu kysyy: ”Oletko sairas?”. Toinen tavu vastaa: ”Ei, tuntuu vain hieman poissaolevalta.”
K: Kuinka monta ohjelmoijaa tarvitaan hehkulampun vaihtamiseen?
A: ei mitään, että ”sa laitteisto-ongelma
K: Kuinka monta Microsoft-ohjelmoijaa tarvitaan hehkulampun vaihtamiseen?
V: Ei mitään, he vain tekevät pimeydestä standardin ja kertovat kaikille ”tämä käyttäytyminen on suunniteltu ”
Tietojenkäsittelytieteen opiskelija opiskelee puun alla ja toinen vetäytyy uudelle räikeälle pyörälle. Ensimmäinen opiskelija kysyy:” Mistä sait sen? ”. Pyörän opiskelija vastaa:” Kun opiskelin ulkona, kaunis tyttö nousi pyörälleen, hän otti kaikki vaatteensa pois ja sanoi: ”Sinulla voi olla mitä haluat”. Ensimmäinen opiskelija vastaa: ”Hyvä valinta! Hänen vaatteensa eivät todennäköisesti olisi sopineet sinulle.”
Fyysikko, insinööri ja ohjelmoija olivat autossa, joka ajoi jyrkän alppilinjan yli, kun jarrut eivät toimineet. Auto nousi yhä nopeammin, he yrittivät kiertää kulmia ja kerran tai kahdesti vain heikko törmäyssuoja pelasti heidät kaatumasta alas vuoren sivulle.He olivat varmoja, että kaikki kuolevat, kun yhtäkkiä huomasivat pakokaista. He vetäytyivät kaistalle ja pysähtyivät turvallisesti. Fyysikko sanoi: ”Meidän on mallinnettava jarrupalojen kitka ja siitä johtuva lämpötilan nousu, selvitämme, pystymmekö selvittämään, miksi he epäonnistuivat”. insinööri sanoi ”Luulen, että minulla on muutama kiintoavain takana. Katson ja katson, pystynkö selvittämään mikä” vikana ”. Ohjelmoija sanoi: ”Miksi emme mene uudestaan ja katsomme, onko se toistettavissa?”
K: ”Mikä on objektorientoitu tapa tulla varakkaaksi?”
A : Perintö
Ohjelmoija ystävilleen (myös ohjelmoijille): ”Tapasin eilen illalla kuuman tytön. Toin hänet kotiin ja aloimme suudella raivokkaasti. Istuin hänet näppäimistölle ja …”. Kaikki ystävät yksimielisesti sanoivat ”Onko sinulla tietokone kotona? Mikä on sen RAM-muisti?
SQL-kysely menee palkkiin, kävelee kahden taulukon yläpuolelle ja kysyy: ”Voinko liittyä sinuun?”
Kun vasara on C ++, kaikki alkaa näyttää peukalolta.
K: Kuinka monta prolog-ohjelmoijaa tarvitaan lampun vaihtamiseen?
A: Kyllä.
A ohjelmoija laittaa kaksi lasia yöpöydälleen ennen nukkumaanmenoa. Täysi, jos hänelle tulee jano, ja tyhjä, jos hän ei ”t”.
Kaveri seisoo kadun kulmassa tupakoimalla tupakkaa toisensa jälkeen. Nainen kävelee ohi häntä ja sanoo ”Hei, etkö tiedä, että nuo asiat voivat tappaa sinut? Tarkoitan, ettekö näe jättiläisvaroitusta laatikossa?” ”Se on ok”, sanoo kaveri, turvoten rennosti ”minä” ma tietokoneohjelmoija ””. Mitä tekemistä sillä on? kysyi nainen. Hän vastasi ”Emme välitä varoituksista. Me välitämme vain virheistä. ”
Maailmassa on 10 tyyppistä ihmistä. Ne, jotka ymmärtävät binääriä ja jotka harrastavat säännöllistä seksiä.
Joten tämä ohjelmoija menee treffikeskukseen. kuuma poikasen kanssa
Vastaa
He ovat erittäin pahoja.
He ovat sellaiset ihmiset, jotka menevät sisään ja muokkaavat hienosäädettyä järjestelmää ”ilmeisellä” korjauksella ja ruuvataan kaiken kamalasti ehdottomasti parhaisiin tarkoituksiin.
Antaakseni sinulle idean, toinen erinomainen insinööri, jonka tunnen , Jeffrey Hsu, työskenteli ClickArrayssa (tunnetaan nyt nimellä Array Networks) ja sai minut palkkaamaan sinne, koska hän tarvitsi toisen ”ison aseen” tyypin saadakseen todella suorituskykyistä kriittistä työtä.
Ja saimme se on tehty.
1,3 GHz: n Pentium 4 -järjestelmissä (se oli 2001).
Saimme käänteisen välityspalvelimen välimuistin jopa yli 38 700 TCP-yhteydelle sekunnissa – mikä ei ole vaikuttavaa , kunnes huomaat, että INADDR\_ANY: lle on vain 16384 käyttökelpoista porttia, ellet muuta olennaisesti kirjoita TCP / IP-pino, jos se on BSD- tai Linux-pohjainen järjestelmä.
Emme olleet muokkaaneet pinoa – se oli BSD-pino – joten se tarkoitti sitä, että vastaimme myös alkuperäisiin sivulatauspyyntöihin siinä samalla aikavälillä.
Ja sitten olimme seuraavaan ongelmaan.
Noin puoli kuukautta seuraavaan ongelmaan, ilmeisesti joku oli vihdoin tehnyt jonkin aikaa tehokkuuden testaamiseen muutoksista, jotka he olivat tehneet muuhun välimuistin koodiin.
Saimme nähdä kasvavan paniikin toimiston ympärillä pari päivää, ja kysyi useita kertoja ongelmasta, ja käskettiin olemaan huolehtimatta siitä ja jatkamaan työskentelyä.
Teimme, koska korjaimme rajallisen tilakoneen olla todellinen rajallinen tilakone ja järjestää välimuistikoodi tuolloin. Se on yksi asioista, jotka saivat yrityksen seuraavan rahoituskierroksen.
Lopuksi heidän kuumin kuvansa kutsuivat meitä selvittämään, voimmeko korjata heidän ongelmansa.
He saivat noin 6300 yhteyttä sekunnissa.
He olivat menettäneet noin 6X suorituskyvyn eivätkä pystyneet selvittämään, missä.
Kesti muutama tunti, ja lopulta seurasimme sen ”tekemään optimoinnin useille suorittimille” -sitoumukselle.
Poistimme sen ja palasimme takaisin noin 35 000 yhteyteen sekunnissa, viritimme uudelleen pari hot code -polkua, ja päivän loppuun mennessä olimme palanneet vanhojen numeroiden varaan.
Ymmärtääksesi ”optimoinnin”, jonka ” kuuma laukauksen ohjelmoija ”ajatteli hänen tekevän, sinun on ymmärrettävä, että langoittaminen ei ollut tuolloin oikeastaan paljon asiaa.
Vaikka olisimme olleet niin, työskentelimme edelleen valtion koneen läpi , joka oli tehtävä ennen kuin maailmanlaajuinen tila olisi voitu mahdollisesti siirtää yhdeksi ”statite” -objektiksi, jotta se olisi ketjua kohden, ja estäisi esiintymiä häiritsemästä toisiaan.
Joten skaalausmallin oli on useita ”tehtävää” -moottoreita s prosessit ja sitten ”portinvartija” -prosessi, joka antaisi prosessin toimimaan pyynnöstä sen saapuessa. Se näki kaikki pyynnöt ja ”päästivät prosessin menemään”; jos pyyntöjä olisi enemmän, portinvartijan kqueue ”päästää toisen prosessin menemään” ja niin edelleen.
”Kuuma laukaus” oli huomannut, että yksi prosessi hoiti melkein kaikki pyynnöt, kun taas muut prosessit olivat (enimmäkseen) käyttämättömiä.
Tämä johtuu siitä, että olin tarkoituksellisesti käyttänyt LIFO: ta FIFO: n sijaan prosesseihin, jotka odottavat ”työn tekemistä”.
Joten hän ”korjasi ”Muuttamalla sen FIFO: ksi.
Ja esitys meni helvettiin.
Syy, miksi olin käyttänyt LIFOa Ensinnäkin, vaikka tiesin, että se ei välttämättä jaa kuormaa ytimien välillä, johtui siitä, että tiesin joitain asioita, joita ”kuuma laukaus” ei tiennyt.
Tiesin, että:
- Verkkolaitteena olimme melkein aina sidoksissa I / O: han, ei prosessoriin, ellemme lataudu moduuliin tekemään jotain, kuten tyhjät tilat tai sisällön uudelleenkirjoittaminen mainostarkoituksiin
- Tarkemmin sanottuna tiesin, että viimeinen tapa päästä linjaan oli menossa g, että kaikki sivut olisivat ytimessä, kun taas pisin tyhjäkäynnillä olleella ei todennäköisesti olisi kaikkia sivuja ytimessä
- Lisäksi olen uusi, että TLB-välimuistin törmäyksiä esiintyy, koska kaikki käyttäjän avaruusprosessit kartoitettiin samalla osoitealueella, mikä johti huuhteluihin
- Tämä tarkoitti välimuistin lataamista uudelleen, mikä tarkoitti minimaalista siirtymistä vähintään L1: lle ja todennäköisesti L2-välimuistille
- Yhdistettynä tämä johtaisi ylimääräisiin käskyputkien pysähtymisiin, koska P4-arkkitehtuurissa ei ollut L3-välimuistia.
- Ja vaihdoin tarkoituksella sitä, jonka tiesin todennäköisesti olevan käyttämättömiä suorittimen jaksoja. ytimet, joiden tiesin olevan paras I / O-sidottu suorituskyky
Joten olin tarkoituksellisesti valinnut LIFO-tilauksen ja vahvistanut suorituskyvyn parannuksen tekniikalla, jota käytin ensimmäisen kerran vuonna 1994 tai niin kutsuttu (minulta, koska olin keksinyt tekniikan) ”moottorin ajoitus”.
Joten tämä ”kuuma laukaus” oli tuhonnut pe suorituskyky muutoksen takia.
Ja sitten väitetyn ”optimoinnin” jälkeen, ei suorittanut suorituskykytestiä varmistaakseen, että se oli todellakin optimointi.
Ainoa mitä hän Tarkistettiin, että kuormituksen alaisena kaikki prosessit merkitsivät suunnilleen samaa suorittimen käyttöaikaa ajan mittaan, minkä hän tarkoitti kuitenkin saavansa paremman moniytimisen käytön.
Ehdottomasti ohjelmistoinsinöörit ovat niitä, jotka ovat riittävän hyviä ollakseen vaarallisia, mutta eivät tarpeeksi hyviä tunnistamaan, kun he tekevät huonon päätöksen.
Niitä pahennetaan entisestään, kun ei tarkisteta sen jälkeen, että päätös oli itse asiassa huono, mittaamalla muutosten tulokset jollakin puolueettomalla hallitsijalla.