Dovremmo partire con un progettino un po' particolare e stiamo
valutando con che linguaggio farlo.
Diciamo che, pur non essendo un videogioco, il software ha le stesse
richieste di un engine grafico.
Come team siamo soliti sviluppare in c# mentre adesso dovremmo passare
a vc++.
Per quanto ne so, le performance usando il framework.NET che sia c# o c
++, sono uguali, perche' il linguaggio e' solo un mezzo per usare il
framwork. E' corretto o usare il vc++ con .NET ha dei vantaggi
computazionali ?
grazie in anticipo per i consigli.
ciao
Credo che in pratica se rimaniamo sul framework tu abbia ragione...
anche se dal punto di vista puramente teorico, un qualche (trascurabile)
vantaggio con il c++ ce lo potresti anche avere. Ad esempio mi viene in
mente il boxing/unboxing che con il c++ puoi controllare + da vicino ma
ripeto che stiamo parlando di quisquiglie...
IMHO Il vero vantaggio del c++ � che ti permette di mescolare "al volo"
codice managed e unmanaged... e qui potresti anche avere vantaggi
siglificativi. Sottolineo il *potresti* perch� non � detto che sia poi
cos� banale ottenerli.
grazie per la risposta. In pratica, la velocita' ci serve in termini
puramente computazionali; quindi mi pare di capire che posso affidarmi
al codice unmanaged per quello che riguarda i calcoli, mentre tutta la
parte di accesso al file system e database vari lasciarli a .NET.
per quello che riguarda la grafica nessun problema perche' tanto con
le directx, sicuramente in c++ riesco ad avere forti vantaggi.
grazie ancora.
Ti conviene testare gli algoritmi anche in modo managed prima di
decidere di usarli solo in modo nativo.
Non ᅵ detto che in modo nativo otterresti le performance migliori. Il
jitter puᅵ prendere decisioni a runtime sfruttando pienamente la CPU su
cui sta girando in quel momento.
D'altra parte il tempo di jitting potrebbe essere un problema, anche se
aggirabile con ngen.
Piuttosto ti consiglio di valutare seriamente la possibilitᅵ di
parallelizzare i calcoli. Su questo pioveranno performance a catinelle.
Per tua informazione nella prossima release del framework ci saranno
librerie sia native che managed per facilitare la parallelizzazione di
algoritmi (niente magie ma certamente un grosso aiuto).
--
Raffaele Rialdi http://www.iamraf.net
Weblog: http://blogs.ugidotnet.org/raffaele
Microsoft .NET MVP http://mvp.support.microsoft.com -
UGIdotNET - http://www.ugidotnet.org
questa cosa e' interessante. hai qualche link a rigurdo che mi posso
leggere ?
> Piuttosto ti consiglio di valutare seriamente la possibilità di
questo era fuori di dubbio.
> Per tua informazione nella prossima release del framework ci saranno
> librerie sia native che managed per facilitare la parallelizzazione di
anche questo lo sapevo.
Il mio problema di fondo e' che ho sviluppato anni fa per diverso
tempo in c++, ma ora non sono
informato su come sono progredite le cose. non conosco per nulla il
managed c++ (che mi devo comunque
mettere a studiare) e non so come questo interagisca con il classico c+
+ di windows.
Non so per esempio come gestire il codice managed in contemporanea con
quello unmanaged (mi sembra ci siano
delle rittive da anteporre alle classi) e quindi non sono a conoscenza
di come funziona il codice cosi' scritto.
sto cercando qualcosa su amazon per aggiornarmi. se hai consigli sono
ben accetti.
grazie mille per cortese risposta.
ciao
Non ho sottomano qualcosa di specifico. Nel libro di Richter sul
framewokr sicuramente c'erano info a riguardo.
> Il mio problema di fondo e' che ho sviluppato anni fa per diverso
> tempo in c++, ma ora non sono
> informato su come sono progredite le cose. non conosco per nulla il
> managed c++ (che mi devo comunque
> mettere a studiare) e non so come questo interagisca con il classico c+
> + di windows.
C++/CLI ᅵ un'estensione di C++ che permette di essere piᅵ specifici nel
modo in cui descrivere cose che in C++ nativo non esistono (per esempio
value vs reference types), e tante altre cose che servono ad essere CLI
compliant.
Se giᅵ hai programmato in C# e hai confidenza su come lavora il
framework dovresti intuire le varie keyword delle estensioni CLI
abbastanza facilmente.
> Non so per esempio come gestire il codice managed in contemporanea con
> quello unmanaged (mi sembra ci siano
> delle rittive da anteporre alle classi) e quindi non sono a conoscenza
> di come funziona il codice cosi' scritto.
ref / value class sono proprio l'esempio che facevo prima. Se sai la
differenza tra value type e reference type, dovrebbe tornarti subito
chiaro perchᅵ ᅵ stato necessario aggiungere quell'informazione.
>
> sto cercando qualcosa su amazon per aggiornarmi. se hai consigli sono
> ben accetti.
Ci sono diversi libri ormai su C++/CLI. Ho avuto tra le mani il libro
di Nish (ᅵ stato tra i primi) e mi ᅵ sembrato ben fatto.
Ovviamente il giudizio ᅵ sempre molto soggettivo e non conosco tutti
gli altri.
>
> grazie mille per cortese risposta.
> ciao
Prego