Ne, těch 10 ms vůbec nesouvisí s původní diskuzí. K tomuto OT jsme se dostali, když jsem uvedl praktický (a zároveň i hezký) příklad, kdy se ve webové aplikaci může objevit seznam dvojic
Těch 10 ms samozřejmě s původní diskusí souvisí. Protože jste to uváděl jako příklad, kdy úprava aplikace, aby lépe zacházela s procesorovou keší, zrychlí práci aplikace. Vzhledem k tomu, že ta aplikace méně než deset ms čeká na data z DB, může po těch méně než 10 ms provádět libovolné výpočty a nijak ji to nezpomalí. Takže před tou optimalizací vám to asi muselo trvat déle než méně než 10 ms, jinak by ta optimalizace byla zbytečná.
v C# tento seznam může zabrat méně paměti a méně alokací než v Javě - díky uživ. definovaným hodnotovým typům a specializaci generik
Evidentně stále nechápete, že to není záležitost programovacího jazyka, ale toho, jak to programátor napíše.
Jinak když už byste chtěl nějaký kód optimalizovat pro použití CPU cache, měl byste si zaktualizovat informace o tom, jak dnešní CPU fungují – od dob Pentií se to přeci jen trochu posunulo. Dnešní procesory už neprovádějí jednu operaci za druhou, ale snaží se provádění paralelizovat (provádění těch instrukcí, které běží v jednom vlákně – z hlediska programátora je to transparentní a ten paralelní postup musí dát přesně stejný výsledek, jako kdyby se to provádělo klasicky instrukce po instrukci). A mezi ty paralelní operace patří i získávání dat z hlavní paměti – takže to, že se na nějaká data odkazuje referencí, nemusí být pro procesor žádná tragédie. Naopak programátor, který se snaží něco optimalizovat ručně, může učinit kód pro procesor tak nepřehledný, že bude jeho spekulativní provádění kódu k ničemu a dotyčná optimalizace efektivně zpomalí provádění kódu na sériové provádění instrukcí.