Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - zboj

Stran: 1 ... 99 100 [101]
1501
Vývoj / Re:Naučím se C++ ze staré knihy?
« kdy: 02. 03. 2014, 21:23:40 »
Ahoj,

Chci se naučit programovat a mám knihu Naučte se C++ za 21 dní. Která byla vydána v roce 2002, tak nevím jestli mi postačí tato stará verze knihy anebo si mám koupit novější. S programováním teprve začínám, tak nevím jestli se C++ posunul už tolik kupředu a za těch 12 let. Předpokládá že asi ano, ale nevím zda mi postačí ta o 12 let starší verze.

Asi bych doporučil něco novějšího, nejlépe nějaký úvodní text, který pokrývá C++11 (případně i C++14, jejž už překladače také podporují), protože tato nová verze jazyka umožňuje psát mnohem jednodušší a přehlednější kód (výsledkem je pak značně rychlejší učení a méně chyb).

1502
Vývoj / Re:jazyk D
« kdy: 23. 02. 2014, 18:41:31 »
Pánové, já vás nechápu...proč se koukám na jazyk D? Sem zvědavý. Ano, vým, jde vytvořit gc bez freeznuti (reference counting). Ma však několik vad, třeba cyklicke datove struktury (jež se neuvolní). D má nějaký derivat mark and sweep (netuším jak maj přesně resenou fragmentaci). Takže, prosím, nenapadat me znalosti, pouze sem chtěl začít debatu. Pozoruji totiž že nabírá D na síle.

I pri pocitani referenci bude muset GC zastavit aktivni vlakna, rozdil je jen v tom, ze nemusi udelat STW pri oznacovani zivych/nezivych objektu. STW chovani lze omezit, napriklad tak, ze se vlakna zastavuji postupne, coz ale pro RT aplikaci je stejne spatne jako SWT :(

Při počítání referencí se jen atomicky sníží čítač referencí. Ostatních vláken se to nedotkne, pokud nesahají na stejný čítač.

Muze byt u jednoducheho objektu, ale uz u takoveho seznamu (kde si program udrzoval pouze referenci na HEAD/CAR) je to slozitejsi operace, a samotna atomicita muze znamenat nutnost locku nebo alespon CAS operaci. Navic se pojmem "reference counting" muze oznacovat nekolik ruznych technologii, muze to byt klidne spojeno s generacnimi GC, v nichz dochazi k presunum objektu na heapu (ale to jsme asi oba dva nemeli na mysli, navic to je spis problematika managovanych jazyku, v nichz neexistuje manipulace s primymi ukazateli).

Jistě, u složitějších datových struktur může být zamykání komplikovanější, nicméně často je "konkurenční" chování efektivnější než kdyby se zastavila všechna vlákna. Navíc konkrétně v Cocoa se typicky provádí RC jen na hlavním vlákně (main loop), protože i callbacky na něm běží, a zbytek používá manuální správu paměti. Ale to už jsem odbočil.

1503
Vývoj / Re:jazyk D
« kdy: 23. 02. 2014, 17:32:22 »
Pánové, já vás nechápu...proč se koukám na jazyk D? Sem zvědavý. Ano, vým, jde vytvořit gc bez freeznuti (reference counting). Ma však několik vad, třeba cyklicke datove struktury (jež se neuvolní). D má nějaký derivat mark and sweep (netuším jak maj přesně resenou fragmentaci). Takže, prosím, nenapadat me znalosti, pouze sem chtěl začít debatu. Pozoruji totiž že nabírá D na síle.

I pri pocitani referenci bude muset GC zastavit aktivni vlakna, rozdil je jen v tom, ze nemusi udelat STW pri oznacovani zivych/nezivych objektu. STW chovani lze omezit, napriklad tak, ze se vlakna zastavuji postupne, coz ale pro RT aplikaci je stejne spatne jako SWT :(

Při počítání referencí se jen atomicky sníží čítač referencí. Ostatních vláken se to nedotkne, pokud nesahají na stejný čítač.

1504
Vývoj / Re:jazyk D
« kdy: 23. 02. 2014, 15:32:07 »
Pánové, já vás nechápu...proč se koukám na jazyk D? Sem zvědavý. Ano, vým, jde vytvořit gc bez freeznuti (reference counting). Ma však několik vad, třeba cyklicke datove struktury (jež se neuvolní). D má nějaký derivat mark and sweep (netuším jak maj přesně resenou fragmentaci). Takže, prosím, nenapadat me znalosti, pouze sem chtěl začít debatu. Pozoruji totiž že nabírá D na síle.

To je tak jediná vada. Ale proto se používají slabé reference (__weak v ObjC, weak_ptr v STL, WinRT také něco má). Plně automatický GC má smysl jen když přesouvá přeživší objekty, čímž se zaručí deterministická alokace na haldě, jinak totiž přináší jen nevýhody.

1505
Vývoj / Re:jazyk D
« kdy: 23. 02. 2014, 15:27:24 »
Díky všem za odkazy/komentáře. Píšu démona, které musí být schopen obsloužit požadavky do sekundy. A trochu se bojím toho, co se stane, až se spustí GC.

V D lze na chvíli zakázat GC, takže se zaručeně nespustí. A podle dokumentace, pokud se používají vlastní alokátory, tak se nespustí i bez zákazu (logicky). To by mělo jít použít univerzálně.

1506
Vývoj / Re:jazyk D
« kdy: 23. 02. 2014, 12:42:34 »
Běžná aplikace (nějaké GUI kolem databáze + trochu business logiky) by s GC neměla mít problem. High performance kód by měl používat zásobník a vlastní alokátor.

Nemáte nějaký link na to, jak tohle dělat v Javě (jde-li to vůbec)? Zrovna včera jsem se snažil něco najít, ale neúspěšně.

Java to takto neumí, ale zato má lepší GC a některé objekty dává na zásobník automaticky. Vzhledem k délce vývoje je správa paměti v Javě vysoce optimalizovaná. Kdyby to přesto nestačilo, tak snad jen nativní kód.

1507
Vývoj / Re:jazyk D
« kdy: 23. 02. 2014, 02:00:53 »
Zkoušel někdo z vás jazyk D? Jaké jsou dojmy? Já sem se na něj trošku koukal a teda nic moc. Straší tam GC. De sice vypnout, ale knihovna a některé language features pak moc dobře nefungujou. Plus, GC při zběru paměti freezne všechny vlákna (nevím jak sou na tom jiné GC, ale mám pocit že to de i bez freezu). Teda fakt netuším proč by člověk měl jít do D a ne třeba do javy ...

Nejlepší způsob GC je nevytvářet odpad (garbage), tj. alokovat vždy, když to jde, na zásobníku. D také umožňuje alokovat na haldě manuálně, takže lze použít chytré pointry apod. Běžná aplikace (nějaké GUI kolem databáze + trochu business logiky) by s GC neměla mít problem. High performance kód by měl používat zásobník a vlastní alokátor.

Stran: 1 ... 99 100 [101]