Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Performance vc++

0 views
Skip to first unread message

maiemy

unread,
Oct 19, 2009, 6:06:31 AM10/19/09
to
Ciao a tutti,
la mia e' una domanda generica sulle performace del framework
programmando in vc++.

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

GM

unread,
Oct 19, 2009, 6:37:39 AM10/19/09
to
maiemy ha scritto:

> Ciao a tutti,
> la mia e' una domanda generica sulle performace del framework
> programmando in 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 ?
>

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.

maiemy

unread,
Oct 19, 2009, 7:37:59 AM10/19/09
to
> 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.

Raffaele Rialdi [MVP]

unread,
Oct 19, 2009, 9:12:20 AM10/19/09
to
maiemy wrote:
>> 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.

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


maiemy

unread,
Oct 19, 2009, 9:57:11 AM10/19/09
to
> jitter può prendere decisioni a runtime sfruttando pienamente la CPU su

> cui sta girando in quel momento.

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

Raffaele Rialdi [MVP]

unread,
Oct 19, 2009, 3:34:28 PM10/19/09
to
> questa cosa e' interessante. hai qualche link a rigurdo che mi posso
> leggere ?

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

0 new messages