Har tänkt utveckla ett program som jag beräknar kunna ta väldigt lång tid att exekvera, stort optimeringsproblem som ska lösas. Om jag har bra skriven kod i c# och c/c++ kommer de då att ta lika lång tid att exekvera, någon som har någon bra adress som jämför prestandard?
C# vs C/C++
5 svar · 431 visningar · startad av P
Jag är ganska säker på att C++ går snabbare när det gäller beräkningar.
Det är svårt att sia utan att man vet vad det handlar om!
Att C/C++ är betydligt bättre prestanda stämmer bra.
Men det finns några frågor du kan ställa till dig själv.
- Hur bra kan du C/C++ vs C#?
- Eftersom det går fortare att utveckla i C# om kunskapen är lika kanske det är bättre med C#
- Kan du kompensera prestandan med hårdvara?
- Är prestanda presentationen kritisk?
Ge lite tips på vad det är för slags beräkningar applikationen skall utföra
"Optimeringsproblem", låt mig gissa att det handlar om massvis med sökning, och därmed rekursion? Då skulle jag gissa att C++-programmet kan gå lite snabbare, men förmodligen inte relativt mängden arbete som utförs. När det gäller såna här problem är det algoritmer och programdesign som gör skillnad snarare än valet av miljö.
spango skrev:
"Optimeringsproblem", låt mig gissa att det handlar om massvis med sökning, och därmed rekursion? Då skulle jag gissa att C++-programmet kan gå lite snabbare, men förmodligen inte relativt mängden arbete som utförs. När det gäller såna här problem är det algoritmer och programdesign som gör skillnad snarare än valet av miljö.
Självklart är designen och val av algorithmer avgörande.
Men jag antar efter att frågan är ställd på ett sådant sätt att algorithmer och liknande som skall användas redan är avgjort.
Och därför kommer och frågar av val av miljö.
Men som du säger vilken algorithm man väljer är avgörande för prestandan. Men blir algorithmen implementerad i C istället för C# så är fortfarande prestandan högre i C. Frågan är bara om man verkligen måste ha den prestanda höjningen mellan C och C#.
Jo, förvisso. Men poängen med mitt inlägg var att om det nu är som jag misstänker, att det är skitmycket sökning som ska utföras med tonvis av rekursion, är de prestandavinster man får av C(++) rätt obetydliga, och framför allt inte direkt relativa till hur mycket arbete som utförs. Om C#-programmet tar dubbelt så lång tid på en liten datamängd som C++-programmet, kommer det med all sannolikhet inte att göra det på en större datamängd.