.[ ČeskéHry.cz ].
Boží tabulka: Visual C++ magic numbers :-)
Jdi na stránku Předchozí  1, 2
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Tringi



Založen: 28. 07. 2007
Příspěvky: 289

PříspěvekZaslal: 16. duben 2012, 18:11:23    Předmět: Odpovědět s citátem

Já si tak říkám, jestli nebudete v pasti až vám MS opět změní implementaci alokátoru. V každé soudobé verzi Windows zapouzdřuje HeapAlloc minimálně dva alokátory. Ve Windows XP máme Heap a LFA, v sedmičkách LFA a FTH, který vaší aplikaci po několika haváriích systém vnutí automaticky. Taky mohl autor zdokumentovat, které verzi MS C Runtime ta tabulka odpovídá.
_________________
WWW | GitHub | TW
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Al



Založen: 23. 10. 2007
Příspěvky: 196

PříspěvekZaslal: 16. duben 2012, 21:29:15    Předmět: Odpovědět s citátem

Tak o Valgrindu jsem nikdy neslyšel. "To za nás nebývalo." Smile Možná by se to hodilo, jak to tak tady sleduju. Jak už jsem psal, jsem trochu "C++ důchodce" Smile, protože jsem to pověsil na hřebíček už dávno předávno, ale někdy se k tomu prostě člověk musí nebo chce vracet. To víte, dělám normálně jen v C# a PHP, tam je správa paměti automatická a nepoužívají se tam pointery, když to není nevyhnutelné. Podle mě nejde o nějakou "akademickou" záležitost, v C# a PHP a podobných věcech podle mě dnes dělá většina lidí, v C++ dnes buší věci jen menší počet expertů. Smile

Díval jsem se do MAME (arcade emulátor), kdysi jsem tam i přispíval a dělalo se to nějak v DJGPP (aneb GCC pro MS-DOS) a bylo to strašně komplikované na překlad i ladění. Překlad toho exe souboru trval přes 30 minut a překladač při tom vždycky párkrát spadl, takže to člověk musel furt hlídat a restartovat, jinak na tom strávil týden. A ladění prakticky nemožné. No a teď na stránce MAME normálně píšou, že by sice rádi dál používali jen GCC, ale že ladění ve Visual Studiu je o tolik lepší... Tak já nevím, jestli MAME team jsou taky "akademici" nebo co... Very Happy
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Crypton



Založen: 14. 05. 2009
Příspěvky: 306
Bydliště: The Void

PříspěvekZaslal: 16. duben 2012, 22:36:58    Předmět: Odpovědět s citátem

Al napsal:
Tak o Valgrindu jsem nikdy neslyšel. "To za nás nebývalo." Smile Možná by se to hodilo, jak to tak tady sleduju. Jak už jsem psal, jsem trochu "C++ důchodce" Smile, protože jsem to pověsil na hřebíček už dávno předávno, ale někdy se k tomu prostě člověk musí nebo chce vracet. To víte, dělám normálně jen v C# a PHP, tam je správa paměti automatická a nepoužívají se tam pointery, když to není nevyhnutelné.

Valgrind se vyvíjí už od roku 2000, zatím co C# byl uveden až v roce 2002. Takže valgrind v té době existoval, jen si o něm nevěděl.

Al napsal:
Podle mě nejde o nějakou "akademickou" záležitost, v C# a PHP a podobných věcech podle mě dnes dělá většina lidí, v C++ dnes buší věci jen menší počet expertů. Smile

Taky blbost. Nejprve si ty své "tušení" raději někde ověř, než je začneš pokládat za fakta.

Just saying... Wink
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 16. duben 2012, 22:59:37    Předmět: Odpovědět s citátem

chjo chjo - http://pixelstech.net/article/index.php?id=1333969280

ja bych doporucil stejne jako na akademicke pude si prvne zjistit alespon trochu 'objektivni' fakta a sledovat trendy ...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 17. duben 2012, 00:24:08    Předmět: Odpovědět s citátem

Al napsal:
jsem trochu "C++ důchodce" Smile, protože jsem to pověsil na hřebíček už dávno

Být tebou bych zůstal u tohoto tvrzení a dále to nerozváděl. Wink
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Al



Založen: 23. 10. 2007
Příspěvky: 196

PříspěvekZaslal: 17. duben 2012, 19:52:41    Předmět: Odpovědět s citátem

rezna napsal:
chjo chjo - http://pixelstech.net/article/index.php?id=1333969280

ja bych doporucil stejne jako na akademicke pude si prvne zjistit alespon trochu 'objektivni' fakta a sledovat trendy ...

Jo, díky, pěkná tabulka. Smile Tyhle tabulky jsou ale dost sporné, neschvaluji jejich metodiku výzkumu, která upřednostňuje to, o čem se víc mluví na netu (třeba o Drupalu se daleko víc mluví než o Wordpressu, protože Drupal je složitý a Wordpress umí nakonfigurovat i malé děcko) nicméně nehádám se, protože nic "lepšího" v rukávu teď nemám. Když jsem tyhle věci sledoval před časem a porovnával víc zdrojů, vycházelo tam, že třeba v open source source komunitě je skutečně C a C++ dost zastoupeno, ale třeba když byly žebříčky podle investic do softwaru, tak Java válcovala konkurenci tak, že měla přes 50% absolutně. Ale bylo to asi jen za USA. Microsoft ve svých materiálech pro změnu tvrdil, že u velkých projektů v posledních letech má C# větší podíl než Java. Ovšem kdo důvěřuje vnitřním průzkumům a tabulkám Microsoftu? (řečnická otázka)

Když to teda shrnu, já asi skutečně současný rozmach, dá-li se to tak říct, C/C++ docela podceňuju. Nicméně já se mu snažím vyhýbat. Nevadí mi v tom programovat, ale přece jenom v C# to jde daleko rychleji. Padlo tu taky, že Valgrind (doufám, že jsem to slovo napsal dobře Wink) je od roku 2000, zatímco C# od 2002. A to není pravda, protože .NET a C# byl venku daleko dřív (moji spolužáci v tom dělali diplomky už od roku 2000) a hlavně je opravdu V E L K Ý rozdíl systémem, který odhaluje chyby v programech, a systémem, kde takové chyby vůbec nemohou nastat. To je prostě jiný level, to se nedá srovnávat. Ale to už se debatovalo mockrát, nechci to zas vytahovat.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Al



Založen: 23. 10. 2007
Příspěvky: 196

PříspěvekZaslal: 17. duben 2012, 20:15:35    Předmět: Odpovědět s citátem

TeaTime napsal:
VS moc neznám, nějak jsem na něj zanevřel, tak bych se chtěl ujistit, že chápu o čem přesně mluvíš. VS v debug modu nastavuje při free do proměnné hodnotu 0xfeeefeee a to kvůli tomu, aby se tím dalo odhalit double-free a přistupování mimo alokovanou paměť?

Jak přesně funguje to "možnost to bez restartu měnit"? Jakože ti běží "realtime" aplikace, ty jí pauzneš, změníš nějaký kód, necháš to pokračovat a aplikace najednou běží nad novým kódem?

Jo a chtěl jsem se zeptat jak je to s tím realtimem na Windows. Je k tomu potřeba nějaké speciální vydání Windows nebo jak je náročné zkonfigurovat Windows pro realtime?

Ano chápeš to správně, akorát ta magická čísla dává i před a za proměnnou, aby se odhalil špatný přístup za konec/před začátek pole.

To "realtime" je složitější, záleží totiž, jak definuješ realtime. Ono se sice říká, že Windows není systém reálného času, aspoň tak jsme se to učili ve škole, ale v praxi spousta věcí realtimová je i na obyčejným počítači. Nejčastěji pomocí hardwaru. Třeba jsem se setkal s projektem tisku na velkoplošné tiskárně. Tam jde o to cpát data do té tiskárny správnou rychlostí, takže tam se prostě přidala rozšiřující karta do bedny, do které se data cpala rychleji a ta karta to pak správně časuje a je to realtime. Vlastně počítač v počítači - dnes jsou tahle udělátka celkem levná. Kdejaký kus hardwaru potřebuje jet realtime, typicky třeba zvuková karta. Software pro zvukovou kartu nemůže jet jinak než realtime a blbě se ladí protože tam každá ujetá mikrosekunda udělá strašnou paseku. Teď dělám emulátor ZX Spektra do Windows, pedanti jako Tringi by těmto programům asi říkali simulátory, nicméně většinou se tomu říká emulátor. Tam to funguje tak, že teoreticky potřebuju přesnost na nanosekundy, nicméně systém ovlivňuje člověk jedině mačkáním kláves, což má daleko menší časovou náročnost. Takže emulátor se předpočítává dopředu úplně přesně díky tomu, že PC je daleko rychlejší než ZX Spectrum. A dávkuju to předvypočítané po 20 milisekundách, tedy 50 snímků za sekundu, což už Windows stíhá realtime a člově nepozná, že to není realtime doopravdy.

Na průmyslové aplikace by toto samozřejmě nestačilo, neboť to sem tam ujede, protože Windows si prostě rozhodne aktualizovat to nebo ono, antivir něco začně kontrolovat atp. Však jsme na fóru her, takže známe, jak to je s akčními 3D hrami - já je počítám mezi realtime aplikace. A nejen kvůli realtime grafice, taky třeba akční hra po síti je oříšek, když to člověk potřebuje ladit.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Tringi



Založen: 28. 07. 2007
Příspěvky: 289

PříspěvekZaslal: 17. duben 2012, 21:26:02    Předmět: Odpovědět s citátem

Al napsal:
Když to teda shrnu, já asi skutečně současný rozmach, dá-li se to tak říct, C/C++ docela podceňuju. Nicméně já se mu snažím vyhýbat. Nevadí mi v tom programovat, ale přece jenom v C# to jde daleko rychleji.

C# či Javu volíš vyjde-li ti investice do hardware a energie levněji než do času inženýra; C a C++ pak přesně v opačném případě.

Al napsal:
[...]a hlavně je opravdu V E L K Ý rozdíl systémem, který odhaluje chyby v programech, a systémem, kde takové chyby vůbec nemohou nastat. To je prostě jiný level, to se nedá srovnávat. Ale to už se debatovalo mockrát, nechci to zas vytahovat.

"[...]So far, the Universe is winning." (Rich Cook)

Al napsal:
To "realtime" je složitější, záleží totiž, jak definuješ realtime.

Že je systém realtimový znamená, že musí bezpodmínečně vždy splnit limitní časové parametry. Jak toho dosáhneš je vedlejší.
Pokud musím dvacetkrát do sekundy přesně umístit a povolit rameno s výrobkem, je nepředstavitelné aby mi výrobek spadl o dva metry vedle na dělníka jen proto, že se GC rozhodl zametat.
_________________
WWW | GitHub | TW
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 17. duben 2012, 22:01:46    Předmět: Odpovědět s citátem

Al napsal:
hlavně je opravdu V E L K Ý rozdíl systémem, který odhaluje chyby v programech, a systémem, kde takové chyby vůbec nemohou nastat. To je prostě jiný level, to se nedá srovnávat.


Ale jistě, že chyby nastat můžou v jakémkoliv jazyce. Memory leak je jenom jedna z řady chyb programátora. Když zapomeneš uvolnit texturu, je to leak a GC ti nepomůže. Když neuzavřeš soubor, je to leak a GC ti opět nepomůže. Když zapomeneš odstranit nepotřebný prvek z linked listu, který ale nebudeš potřebovat po zbytek běhu programu a ani běh programu neovlivní, tak to JE memory leak, ale GC ti ho neuvolní, dokud celý ten linked list nebude uvolněný.

Myslet si, že takové chyby nemůžou nastat, bych čekal možná od člověka, co zrovna začal programovat, ale ne od někoho, kdo si myslí, že už má nějakou praxi.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
micky



Založen: 28. 02. 2008
Příspěvky: 348
Bydliště: Plzeň, Praha

PříspěvekZaslal: 17. duben 2012, 22:07:09    Předmět: Odpovědět s citátem

Ta tabulka na začátku byla ještě docela zajímavá, hodnot typu 0xcdcdcdcd si člověk při debugu nějak všimne, řekne si, hm, možná to něco znamená, ale já to tam fakt zrovna nechci. Dejme tomu, že někdo sám neodtušil, že to tam Visual C++ při debugu cpe jako default po malloc, tak mu to třeba nějak pomůže (možná).

Teď cítím ve vzduchu pachuť flamewaru a poněkud smutných potřeb obhajovat sebe a své názory...
_________________
https://www.bluepulsar.cz/
https://twitter.com/11thDream_Game/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
TeaTime



Založen: 17. 06. 2011
Příspěvky: 264

PříspěvekZaslal: 17. duben 2012, 22:23:58    Předmět: Odpovědět s citátem

micky napsal:
Teď cítím ve vzduchu pachuť flamewaru a poněkud smutných potřeb obhajovat sebe a své názory...


Welcome to CH Very Happy Nějak se holt domluvit musíme
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
micky



Založen: 28. 02. 2008
Příspěvky: 348
Bydliště: Plzeň, Praha

PříspěvekZaslal: 17. duben 2012, 22:52:00    Předmět: Odpovědět s citátem

Já už si zvykl. Very Happy
_________________
https://www.bluepulsar.cz/
https://twitter.com/11thDream_Game/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 22. leden 2013, 00:33:33    Předmět: Odpovědět s citátem

pro ty kterym chybi valgrind na windows

http://www.drmemory.org/

skoda, ze implementace STL od M$ vykazuje neprijemnou chybovost Sad
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 22. leden 2013, 09:12:59    Předmět: Odpovědět s citátem

rezna napsal:
pro ty kterym chybi valgrind na windows

http://www.drmemory.org/

skoda, ze implementace STL od M$ vykazuje neprijemnou chybovost Sad

Díky!!
Něco takového jsem moc dlouho hledal, Valgrind mi moc chyběl! Škoda, že tohle neumí 64-bit appky, ale to se dá přežít. Hned otestuji, co všechno umí Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2
Strana 2 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna