Pa da, ali kako C# ima JIT compiler, a i zbog mikrooptimizicija koda nekad se događa da je managed kod brzi od nativnog, ne?
Ne, ni pod razno. U najboljem slucaju managed kôd moze biti jednako brz kao nativni kôd.
Uf... Runtime compajliranje ima više informacija i može postići bolji kod od statičkog. Naravno, ako želiš kompajlirati za svaki hardver posebnu verziju, i onda isporučivati 32 verzije exe fajlova uz svoj program, be my guest :)
Teorija o tome je epskih proporcija, ali za početak http://www.javaperformancetuning.com/news/qotm042.shtml
Rucno postici bolji kod? Ako si mislio na koristenje pravih algoritama i struktura podataka za odredeni problem, onda da. Jer najbolja optimizacija je vrhusnki obrazovani programer s sirokim pozavanjem struktura podataka i algoritama. Ove low level stvari koje radi kompajer tesko da covjek moze danas bolje napravit od njega, previse je sitnica oko pojedinih arhitektura koje kompajler zna a mi ne znamo. I slazem se da je Intelov C kompajler najbolji, ali pogodi za koje procesore i arhitekture?
Preporučam "Diary of x264 developer" pa vidi iz prve ruke kako compiler (statički) zna bolje od čovjeka optimizirati za brzo izvođenje, pogotovo držati kod dovoljno malen za izvršavanje u L1 cacheu :)