• dez
    #42
    "A legegyszerubb pelda pont a tobb processzor mag kihasznalasa. Nem letezik olyan C/C++ fordito, ami magatol optimalizalna a kodot tobb processzor magra, tehat ha egy jatekfejleszto ceg ki akarja az osszes magot hasznalni, akkor bizony alapjaban ujra kell irni a kod egy reszet (hacsaknem mar korabban is tobb szalon dolgoztak)."

    Ez egy kicsit más téma, nem optimizáció a szó szokásos értelmében, hanem többszálúsítás, párhuzamosítás.

    "Kicsit alacsonyabb szinten megemlithetjuk a processzortipustol fuggo SIMD utasitasokat vagy egyeb nyalanksagokat pl a virtualizacioban, amit az AMD es az Intel mashogy valositott meg."

    Na ja, Intelen nincs 3DNow!, viszont az SSE-ket tekintve elég közel állnak egymáshoz.

    "Es ez meg csak a jeghegy csucsa, mivel egy jo programozo pl arra is figyel, hogy megfeleloen hasznalja a cache-et a prociban (nem mindegy, hogy ki, mikor, mit, hogyan es hova allokal, ir es olvas), pedig a cache teljesen transzparens meg a fordito szamara is. Erdemes arra visszaemlekezni, hogy ezt kevesbe nemes celokra is kihasznaltak korabban, amikor pont akkorara mereteztek egy-egy benchmarking programot, hogy beleferjen egy bizonyos processzor cache-sebe, ezzel novelve a teljesitmeny azon a CPU-n."

    Ez igaz, de itt már rég nem utasításonként kell optimizálni (kézzel), hanem csak egy-egy rutin/függvény méretére figyelni.

    "Bezony-bezony, egy jol megirt, nagyteljesitmenyu program bizonyos helyeken eltero kodot futtat eltero processzorokon (pl P4 vs Core 2 Duo)."

    Ez is igaz, de ma már ezeket sem kézzel írják asm-ben, hanem a fordítóra bízzák.

    BTW, optimizáció vs. optimalizáció: az első angol nyelvterületről jön, a második németről. (Nekem inkább az előbbi jön be. A fordítók szinte mindegyikében is így szerepel.)