I wrote a script to read a large string top to bottom, instead of left to right. When I run the code one core of my CPU pegs @100% and the code never finishes. If I uncomment out the console.log it spits out the letters slower and slower and pegs all 8 cores @100%, memory usage slowly rises until it's used up all 8GB on my system and then it crashes with an OOM error. I'm obviously doing something horribly wrong.
var haystack = 'SRASBPETHWTWHDZVPOAECJHGNXHRKZXRBMSDYGZGNZBBCOKVPPJKKAQECOLGBFIIKTPVSROCCWWGRWDEQTNFSKEDNFBFKWVEELVTBULWROMGTXSASKCTFJQFDOGRNMZEBLFSCFAFWXZVRGFAZHERUTMOETZZRYNUHSRTHEYIVQDXFNWDDSLSSGPFOMYRHBGKONPIWDTZUBBRAJZGBVUGMVZZTPRAXMLZSXYELKJZWXUYUQIUGGHISZHIGSUQHGHTICVWIJVXMUXOQHPDESKSPRJHQVVTRTNQEVUWKGGQDURAXZWTMYUYIISIOXLTHCISFFSNHZMCGEWMOWCHRQKYNDTDLFWERZLEPRLTNZSPFEDCDESQVMLWMXGCXPMSPTJGSXTXINFADZTBUNDIQWOAIGFKQAJWHINHMZCZVMTJJWGTSGGOIBOZCJGVURJETNXSXWEDUNJPVLPZTDIMSIZGQUJALJYWVLRDYDRWVHZNUNKOLAUPTBMKUNFQYLVQKOQIPPWVNDXENRCVABOTNEKKJPURYNAWAGIZFEHYQMOFICBCQKELTMUYVQPYPZKVBYPTLXRLMYEXGAPRCWDJHQASDQHRGSTIYGMEAWOBLFPSDBGGXFBGIARMGLYOFCZXILLFLCVKCKCXYBTKIYRHLPWXBNGLJYVIZHWPIQSQLHURYRRTBTUBYRMMEQULVVJFKRRZTZVOIKNXPIICBQGFPTETWVPVUKEQOVTCOUARDTAVZFSZWBSTWTQEGLIDKUVMTFRXHOWPPJHCEWMTHJRKXENFENKDMPEYVNEMQRDBGZDIBVYCCFLFMFPSXHHADOZWMMOJKQSYNAPOKLUPSALZVKPKVBRIAFOXSECFCULWPFNPKFGIBPAUEXEOHLTRWTLJMHEMIXSVZVRYZQXCUGNZGDSLXJSROSBAIWPKQGICVKSMAVUHZPIQHDQGLSMJUQYYAZQSVORXLRNMEOYUFAKGKHJFKQPBYKDSLYHKLCEWAQINPRGOGVCQBAKTVDZZNRSIKZVSRMFCDJSANSGNQZPPEZSIZCSQCPMIRBKJZFKVRVVNOLDSYGFLMNJHCGUZDRVHTLSJMCHZCQJUURVMEFABDKQEFYXYZEQUOLEOZWXDXXOXIFPLTFBGTKYTBVSSTJESKVIMHJSUDVKRKOJYOGWIXLODESHRMPYBWKRPFEUGIYXXGHDVYXPUBVSQPHRUSSCQDHAXMJNUNSFGHZANXDFFXDETLXVAUAPOCASOTONXBXIYFMSMUUPFGMYKWVFGTTQFSNUDFTIRWSVVEQHPVFRYPLGPGIEUMSSFONCONOPHSDWGFBIGPEKQBRPZWYLZLKCMWFOKLNQBYJREVFRLWFBDVIVIIVZUTQZOLDSNDUISKYGJTIGWYUQBXXTAPQMKULPXGCYFMZLNQDAWOBWOVTKXOABKZRWAZUDYYTYNDQAEJHEDPOYUANKWMUATXGCRRGEKDVTIGTFLQHQVFJBRIFKYLHDJUXLAMVELRZPNBSEBQUVHARMKVCLLDHHYYQNTXFIMFKRIMTJUEJOWIEIETZDADSGNJFDGGWKRJUXQXXKLOUSYMCTHLYIXSICFCRHFCXUSFOMCVSVYIIMCNEGHRMCZKWXPHFAMCTCBEBHQOBDXHAYNSVVZWAGTEIMVWRCCPNCCQGUWXIGCPZERUVJRQIZQYSMAUNHCVNROCDFORLNOWTLVTHADALVCOISZDFKNFMXQBMVUMFDFKDGNRQKZPXDJNZODBXFUAGEPCEQSLGAOSQZUHJXEQFTRLAWZUUROTADFEXJBGJCOPLRNLLHVTNPNPHJDYWEGBKVOZOFDYMYMHUNDMLIZOCLODMRBZORXZVTUAIDXZIGOLLMGUJLSOHSVDFEMDTXEUMIOITNSXVNXUWMNPFITZXAJBKUVMNLUOONUDQSWYUCZOZXOXAFRCWVMMBLFCPPHFTLEKHXQNWYMQYDLGHTSSGDCFIRSMVTJFKPLVLBWIFWBJQTKXBIMLRTGNABJDXWIEFLVCDLQTSWURMBASDXNXHBQTEBCUTGWVTHXDHRJYZZKNQEBPXRYMWAXEGRSRUCQHYIOVOYJUXPANVEAJEUKKYAWEZSPZYCQPPWXVNNPHIVSHSSYVJLUNDXAFPCXLOOTRYVLVGNIQVPZLBXAPWQGSCCXINWFTIVFGLMUTPRWQFJORMQYYIUUJZRLLFXATWFRCQDKDIFXZHCWJGYEROPRQTJGJJSTRRKAMAGGMZKKOPXYKUSNZVVHHNRAGAGWXZOIYKVMAQJELXWGUEWMTSJMOEZRUEGUBZELODZNCDASJZGOTXYZGVTVMRTVVSWHFEFVUJPCCGEJXWYYLBVZGIGCHRNQOEDELTDIUZPAGGJYPCEEKZNQSMDKNMRZFVBPLIRBFCCVLUGCVPLOPCWDZJZAMKFKRLXTKQJIZSNAQFUXMCLXPTBKNNWWKKBVLYQPFHVEHGXQEHPOWRIIWXGKVBFMMDOJNFMCCNWTALOTLCMFKXKGIKYHQIOUJOAIXEFIMWMKCTABKRCVTAFDLWIQFDUEYDOBFJOKXBKIIBCVIVILAWTFXHLUVTMGQEJEVKBAVMITJPVRGRCDSFLPXRFWGAJLGMSPAOUVMDUBXYWEOVMDNUOIMXGEVNKCALLWPPMNNMFOVTZOAPSDJFZECSDIHKXCYJCAGYKLPOWFTVSRDSBSGGWDNFSTRZQYKMOUDNTRGXFKJBLOECLUJQGRQWGUETMKOGUWCAHDHGGCBSWXTXMLJMJFJTKURTTCXNOOEBYYUVKPWXSNUKVCZOXJOMXXCLTZWBUDYMEJNTIPBTWJKJJLYQFGYRGYFUCTAICLKBYEHONSPSMXLLMZCMJQVOGKEZOYBDJIUHAFGCEIAPXAQVGSBIJVUDHTWPPEKMWWFEUCAQWFRHLCFTLPXVJNKFCTEXGKPZXQXOBKPDWOAFOZTBYGDVFAJXMQOHAPTLSNLKJIGZRFSBGMQBNBAHELRDEWUEWQVKVYZBPGQVOWYKZEGLJRLYHBETRZTEWBTGJBRUTBKNDGEAQEUTLZZSAMCMMVJWBPDKOSGPLVUKPZAQGJDKUIIPCVBOIBCXRAAANQSCBBYQNXRTCRNHJGMRYICLHDBXVXEGBFAEXOAABYDXFQTKPXVMQPHXLTXCVMLXDJPULJNOGVZFMYIRBFIEESIEJDBLYPARQERLKUEHYUGJIRKVQEFZLQUQXSKRNBZURWPLZSTPXISSJLUFZSMFXZIVESRSKEDNJEPGVPUBHLGWTKISYYJVQHXPHJDWDWQMAQWTZIBKCHEAETDYBJETTGZYHUURVERLLSCKUHSJMOAXTRYGKDXGISNNAHVQTEZKRKWAMMHAJGEJZOWZNEIZLZSSGLDGHXNEJPUBPPXNLJCKBFYDGXUPXITFATASDFNSHKWNZMQGXBBOSHEWBOWWCFKDCWVKWOTKMNEGJNOPURJJWAFPQOLNGBMAUCITMGZBOQIEUJEIOSNSMYQJTGVPFGXWCCCKDRRVDIHDYCTQHESHCTUUSSVQWMWTAOKIJALBPMGBEXZQFRIKAQVWBUXUNKBYMYSEXBNZHFHUSFGSKRQYZVKTALOHBMXSGHRUDUYSSMWFMPMMWFXCPISMWXIFEQSWTQQKUMZGOANSOASHGJBEKWLJBXENHHBWQQUCRQYNAATEWLTESGXPCWYFVQGGXTTPIBWSYRXBQGDXJMZFQRYDPKFPNYRQEFGFSZBGZRDVLHSYXTRTXFOIQIYBPFEXQDXBEPJNDPPBICIRTBBTLQUALXYUWPUDBVMJSOJPNEGIWXGCBFDZZSKWNAUIAXOVJJWULADOMBTGOTCIAYLIAGYTVVBZVVMYBWAJYQYCTNHUXYINPLAEIJCECYYBFIMUXXDGRKJADAFWWQKVSKLWKGPJPFZDCWNIHLERAIXHDIIIMDQPFTZVZTWYXYCUOCFFEYPBZRTSCPUQMWXGZVYCKTEVNJPBDUBXIUSUOOGGYGRTGAZTYRCGBKJFGXBRMDQGZXIGZDJCHWFORQKJJGUJTRIGIKOBYSRTIOUIAZWVHAWISDDWTICHGVEHSUTDFTGBIJUMXLNHLVXBOFPCEUOWQRDIELVYBAOAWLRCBJVKJCXYPJPGIJGNGJYUVFDNDCDBQXQMRYLIHDKYQHGBWBZOAOXPMALQZEWAAHGMSLSROAJPLGSIKFUSYRDJPQCOOQJTJVNPLIHJECIFUHIIEZYMJCQTCKUHSCJMUVDEZIMFEGOMRHVUVIVGMBERRPLGKWWOPLKRQIWJRZBYOSXROTLBUDGLWGKKWANWWIWJNQDCVOBSIPNXJEHKNUHSXCXDCCRSNBYZVXBUOAETHRQYYVQGLXWBWXYDRBFSBCNOSJHGTNSCIAXPCLOACAQGCBTXZGTCIDNGLAZCWXIFWKDYJWBKXDEUJZPQRLWASIKLSLFMERFKPXQYQFIRYHHUXSCWVLQZGSMLZUYOAFCUHMJIVDOEBHDKZYUDADMCHXQYIKUMKAPRPWSGDMNAGCSOOVPSCSWCENPBOCCJQXPBBDEHHVUVTFSLHGTKHASWGOUUQEDZYJOXUXELQAMKVNGAAJXMAHKARSLPRZGTDBKPRCXYHWWHWRRXXPRFKMJJNEYGHTMWCTNBQRCUAJPPPLPNJETEYDBRMLEIKLKGLJMUBPRLWIFEOOQCBGNOVMLMTZGYCGMSLCTKBVHJGUZLGYUJYXONOPRHMJEAHICJRUXILJAGNHHJXSLJTVMGGRNVKTDOJVHHXWZVJIEJCPPVKAVHWPCNBZTIMNVYGAKBJIGBNMLRAYUAHKJWCOISZHMGONXQAXWJZVQOGQUGAKJEXUNLTCDYRQWDGGOUUUUHWPRASTBFMSYGROSNLXLENLVETJKKSOLSMHVEUQRLJUDAMKJLWECCIHTUSPPTVXUVZZVDUVPVWNQUPLIHVDPUQVUIIGIYCFUANGHNOWQMSOQOMHLQNIKVQBGOQHHZFVCLPIYOXHIAXDLRZJGXAIJYNLVXEIAAIZXCUITPLABHDPJYZEOACHCRYUZNYNHPJPOPPGEKXJAAZLGPXJSNHNSQSPJRXZGYGSNDUWNJCQNPLJJGKIBUXGSPGUXZAWHYBWCDSQPWVTBCVDQRDXMXBMDVRXLPHGUFSTQPXOLOFIZKFDLJSUUUXCINQOYFULWDNUZCRJIOSRMOWVMMHNYNFBUKYXEFLIPBFEDPFJGHFXQYVUZBUNUJDLSWYREVCKMVQQVAATSRNUOSNABSMXRFVVMVTXITIYWUKTCDNZPYUGPPQOQRPDFMVUXMTKNZQWOJHWELRFYDFKTBGVVSZNBTDNPBFHAKKUFHZVUXRARYEKWUCYQXLIWONVNBYXNAQZBTVGWIDGTAWFBRMRVVKYAXJOTYYSQXZAJEOWWCOJXLBWSXGODJSUEOMYXHPUEPDYLWYJNDISRWYYFAGYMVSXPTGTTVWTFBSTFMFCYRLFISMGKAZVQBSNISILDCSLUGVWBBKWAXOPTHPJQFBTONDUMCCNEDSRBYOCIAMTLBAVESZQEAHGNFADENFWGWIGAQTOCSNXNSZNEVJMHVENBGUOOMMGCBGJBCPQPYMBHDKJPQDBLAMLLSGUEEFLNGNZJFQFZKONNDHXIUJDMBUNOVWSFBBJWRHIJSTMSQNSFPDJAXRARKGEDQDHWGZQWZRWPLWAUPUIGUXPAXHIKPDJLCQOMHRYRLJYOCSNAWRNCHSXHJTKNGMHYOHRFIYQJFSPJOMYBUPHUQJRWNQEESRWPGJKHZRNDZBQIQBNFSIAVIBDEWWSDRATKVZPBTTHJYASFTUCIIHZQTXEOTLJSVTZQWALTTBGQLPFSYITRVWMKCJOZWONQSZTPDLXESINYENYTAZYPVZPDBYGFDGEZTJPZVZDHTRKOTGZELUGEWSMYZFOSQEZNNSCVKWXCKBDDRMWFWUBJJHTVQVPARGEFMXCCKQLCOABKJYOKUPJYQNMKNDBNROJDPUANZUTBZRKPCOFJHKHJQWQZMNFOLTJVODPWFPJOEYBLPIOIWFQOETPAAZEHMYSNMSSFSTIWOZRTGGXHDKJPOKCDUCFOZJNQAUUZJONRAOJHVPQDMUHNFRBHECDFCAOLXXQBDEPIZWQHMONFDLDQDAHAZRHGJTXVUPDPZVNHJHSGBPMVFVAHYUYKRPQVSTNSQXEBMSSKJBYQKBXWSNAQZJSYPQDCRFORMTTBVWUBPYIXLLMZEOMAELSCBIMRASXWFFFFZDHEUDIRZKJMNNENEARMVLNGYGJMCAOWYICCTRIQUJAWWLAPFTBJGHHEHBVQJNIDKAGMPOLTZIKEEBQTQHFVDIAHJEZMIFWPMXTEHJQKGMHMMYPYQCARDOZERLTHGYWWJJEILSYLISWVPRSCIUXVXKSQWLKTRCWUURCLGXYQQXWQVOWXTLURZIKQRJXTPNWRNQAYMIMMUXCTZREGGHFXMMAAHZZMQIEQGBHORJGAAZAJNZIDKKXZIRRTUASAEOBPBWYDUCUILWFEUMSBCPWWMNDCEFNSDJBGVDYUOUPPLEMTQLOLVXLPFNMYNCTSSIJRLQDOWSUEREYCVPKJVBTAVKEANLCJVZHRUIOEWBCUYDLEYYDLYEYYMOUTROZIGJRHRNLISBLUGUNLZZLNHIWTDNGRLAVPOLOYSMTTLLPKDLQWNSXMIDXBHAXYEMRPYONJVJLYPFLMLOSLWTRMSHLYMSRJHXKXRGWGAIXBUCWRXCGEUWYUIUSQQPWKMHHSBDFSYZKOSQZXXAVXXXJKFCNIGXEQZNBBKEKCQOWQGQHTUIPEYUFJARTKKFHDOUHLHUZZFXLWHIOOIGKNPAXEXDNWIUQSOSBHDEQLKPLIRUQMUBHSQIGUNJSBWHLBFSUOTNJZWQDDXETAQNDYADEIGPJEBVGIDGLVDMIECXNUIELRZAUFRBSMNPOGJHHCDAVVKIYEOWLLAVCUZOCBDKPAPCUVHWXUQSUASGIBQAOROBZLGTAMIHSHOWXPQBVFCOSNQLMFGEZAZRXTIHWDWXATHYUAIDPSGBPUIVVROEXXUHHVCCCMNXFGAQIJNNVZHBEWULPGLYJHLRBFGPPJCAIAFKALYQDWBFGDYRCOQGXZLVLSMMDXEKDCMQIQBQVRGVHTYUZTHGATYRZVIGUMKADPIGSIFJZCKKJHEONIKRXKOPXAGMWBMHVPVPDWRADGMTVERKRWSSVLVFIJGMUBZTRSPNGDLFRBXGMHNEOJCMPFOAPWEPLGRABYLLXDLTERRBKDBVYGQNDYYNCHLWDWWYLLVQBOVIHFJLFVTMKDVINYKKERJKSCZTZEKQSFOSMPNVGSNQSQNDAVQJNNLQHJLBTXPZBXFYRRACYWMCKFORKWGNJCLFIXCIQSPWUWTRLJSICZVKZDAIQTURXNBGDLIREHDLDUCDNDXNSHRCLQLATVPHOZRTIXXIQYEJSARNKOOYIIFVLEGISMMEQNCMAKQLXRQRNEKMGFLCNCJWCTRDMEIFCZVJGTLGWDSTBSEUKVWEIHOHMSZKXUCCVHACKLKQJQSXKUJXPTSHKYRMUADWABQSVKIPFRPTDASYVGJXXMSHFNGRDXIQFGCUGHLKOWXPJETKDWUZHZFKEDYTKZEUUQDIJMWKYUVDYZPTWSHNJDBLZMNOTKGCWFRASJBPQYPTAKPDBFPFLZCEPKPTHTQAQVMMFXUUNEGOJOYRCSBIZZPEREIYMQYMBJIDTYCJAJVIQGHLHVYVLFXRJJWEJJEGVJOYCBVQEVXKEDKLRFSOMXWEKBCHEMLCIVTZXXTJOXHPZAIMBTJBHVSOGNWZBRFABAINEEBPWNYSBENBURPTRCAYWKCQCNZXWKRWVLVTHJWSOBEWANCJSLRWZOBPNITSTYNTVJJZNCNSPCFDQQNAMMQPVPQWTBPSAMWZECDXXCKBBEQKSKLALCZRZCNFDYOXEAYHHKRNF';
for ( var n = 0; n < 64; i += 1) {
for ( var i = n; i < 124*64; i += 64) {
//console.log(haystack[i]);
var vertical = vertical + i;
}
}
console.log(vertical);
But what? I've done other (indexOf) operations on this large string and an equally large array and performance was fine. Is this nested for loop a nasty piece of work? How should I be writing it?