|
dev.gamez.lv Latvian Game Developers Community
|
View previous topic :: View next topic |
Author |
Message |
elvman Indago Uzvarētājs
Joined: 09 Apr 2003 Posts: 1278 Location: Kuldiga
|
|
Back to top |
|
|
elvman Indago Uzvarētājs
Joined: 09 Apr 2003 Posts: 1278 Location: Kuldiga
|
Posted: Sun Apr 13, 2008 10:35 pm Post subject: |
|
Njaa, nepamaniiju, ka 7. apriilii raksts tika apdeitots, tomeer C++ uzraada labaakus testa rezultaatus. _________________ long time; /* know C */ |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Mon Apr 14, 2008 12:54 am Post subject: |
|
Tas protams ir jauki rēķināt 5 miljonu dimensiju vektoru skalāro reizinājumu... bet nu es šādu mākslīgu mērīšanos neņemtu par reālam kodam atbilstošu situāciju. Pie tam, viņa C++ kods nav ne tuvu optimizētam kodam. Cikla atrullēšanu un operāciju pipelin'ošanu viņš ir aizmirsis savā SSE optimizētajā kodā. Tas dod ievērojamāku ieguvumu pat bez SSE instrukcijām. C++ kods jau tieši dod šādas iespējas - optimizēt kodu zemākā līmenī nekā augsta līmeņa valodas dod iespējas, un ir neprātīgi šīs iespējas neizmantot tādējādi mērīties salīdzinot ātrdarbību sliktam C++ kodam.
Daudz reālāka mērīšanās būtu uz parasti pielietotām operācijām - atmiņas izdalīšanu (šeit C# spīdētu!), objektu veidošanu, metožu saukšana un tml.
Un tam vajadzētu būt pat mērkaķim skaidrs, ka jebkura abstrakcija, tai skaitā virtuāla mašīna, radīs kaut nelielu, bet bremzi vispārīgam kodam. Protams, ļoti specifiskām operācijām var gadīties, ka rodas ātrums, taču citās operācijās tas nebūs tik labas.
Visu laiku esmu teici - vispirms profilēt un pēc tam optimizēt. Vienmēr var lēnākās programmas daļas (nav svarīgi vai C#, vai Python, vai Java) pārrakstīt tīrā C/C++ kodā, kuru pieslēgt kā paplašinājumu (dll failu) lietotajai valoda/videi. Kuru gan interesētu, piemēram, ja "lēnajā" Pythonā izsauktu messagebox funkciju, ja tas tiek darīts daudz retāk nekā vienreiz sekundē. Optimizēt vienu izsaukumu sekundē? Un ko iegūs? Piemēram, 1 milisekundi uz sekundi - tas ir tikai 0.1% ātrdarbības pieauguma. |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Mon Apr 14, 2008 7:36 pm Post subject: |
|
nez, man anyway kautkā neticas, ka C# varētu pārspēt optimizētu c++ jebkur..
tur jāskatās... _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
Storm
Joined: 11 Apr 2006 Posts: 742
|
Posted: Tue Apr 15, 2008 10:01 am Post subject: |
|
Skaties skaties, eku novelc tur sourci un pagluuni pats Kas var buut jaukaaks ja neko neoptimizeejot tu ieguusti aatraaku kodu kaa C++ xD Mja... Ar C# vajag tikai maaceet netaisiit GC mokas un viss paareejais ir vnk forsh _________________ Izraadaas ka dazu dev.gamez.lv lietotaaju absurdaa ignorance meedz eksisteet arii augstaakas paakaapees : http://www.gamedev.net/community/forums/topic.asp?topic_id=411552 |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Tue Apr 15, 2008 10:23 am Post subject: |
|
Storm wrote: | ja neko neoptimizeejot tu ieguusti aatraaku kodu kaa C++ xD Mja... |
Tādā gadījumā tu nesaproti C++ jēgu. C++'ā jau nav jēga programmēt, ja tu netaisies tur kaut ko darīt zemā līmenī. Tas būtu tā kā sneiks mērījās ar std::vector vs pliki masīvi - lietot ta viņš tos vektorus lietoja, bet pilnīgi neoptimāli. Un tu taču netaisies apgalvot, ka masīvus lietot ir labāk, jo neko neoptimizējot ar tiem tu iegūsti lielāku ātrdarbību...
Un zemā līmenī C++ optimizēt ir milzonīgas iespējas. C#'ā, piemēram, tev rokas būs sasietas - neko tur nevarēsi zemā līmenī optimizēt, neņemot citas valodas palīgā. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|