Diskuze: Skládání kódu
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Přijde mi, že je to úplně jedno. Když máš víc řetězců, použiješ 1. verzi / pole a když jich máš míň, tak si vystačíš s druhou volbou.
já jsem to zatím chápal tak, že VratTextA() je v podstatě nově vzniklý string pomocí funkce VratTextA() a ten, když použiji jako atribut v jiné funkci (což je v uvedením příkladu "VratTextA()+VratTextB()"), tak se asi vytvoří jeho kopie, ale když použiji verzi 1, tak se vytvoří kopie nově vzniklého stringu nejprve do a a pak kopie a do funkce "a+b"
Řešíš pitomosti. Těch něco málo tiků, které ti to vezne, je ti v
dnešní době ukradených. Snažíš se porozumět optimalizaci kódu, nebo
nedej bože snažíš se ho optimalizovat, aniž bys pořádně znal jazyk.
Prostě takové věci zatím neřeš, je to úplně jedno.
Brzká optimalizace je cesta do pekla.
Ne jen mě zajímá, jak je to správně, aby pak někdo neřekl "které
prase to psalo...", navíc pokud je to zanedbatelný rozdíl, a není to z
nějakého důvodu prasárna, tak to řešit určitě nebudu (rozhodne
přehlednost kódu).
Protože jsem si nebyl jistý, tak jsem se na to zeptal;)
Navíc, alespoň se domnívám, z toho kompilátor v rámci optimalizace udělá úplně to samé. Takže, jak píše Patrik Valkovič, piš to tak, aby to bylo přehledné a vůbec si nedělej starosti s případnou (doslova) nepatrnou ztrátou výkonu. Snažit se optimalizovat má smysl až v případě, kdy je program pomalý, a na místech, kde například v cyklu projíždíš velké množství dat.
Tvoje myšlení se ubírá právním směrem, ale .NETu nemá takový význam. Nicméně neřešíš úplné pitomosti. Jenom na špatným místě. Jsi céčkař a optimalizuješ za pochodu. V C#rpu na sebe nemusíš být tak přísný. Od toho vyšší jazyky jsou. String je v .NETu immutable typ. Na to je potřeba pamatovat. Tedy s každou změnou(třeba i to sečtení) se dělá kopie a to bude "hrdlo". Mezi 1 a 2 nebude valného rozdílu.
Ale pokud bys měl používat sčítání stringu třeba v cyklu, tak tam už
by měl optimalizovat i C#itsta použitím třídy StringBuilder
http://stackoverflow.com/…tringbuilder
Máš pravdu, vždy když píšu nějaký finální software, tak jsem
zvyklí přemýšlet nad každým založeným bajtem (zvlášť u smyček).
Teď co jsem se pustil do .net(u), tak mě už hodněkrát překvapilo v
různých zdrojácích, jak se tady nešetří. Například se hodně používá
Int32, i tam kde maximální hodnota nikdy nedosáhne ani maxima BYTE. Nebo char
je unicode přesto, že to někdy není potřeba... No si asi budu muset u c#
trochu jinak stanovit priority.:)
Ano, StringBuilder jsem už zaregistroval a líbí se mi. Myslím při vhodném
použití může cyklus hodně urychlit.
Díky všem za reakce.
Zobrazeno 11 zpráv z 11.