|
|||||||
| Cerca | Messaggi odierni | Segna come letti |
| Forum microsoft.public.it.dotnet.vc++ Newsgroup microsoft.public.it.dotnet.vc++ |
![]() |
|
|
Strumenti della discussione | Modalità di visualizzazione |
|
#1
|
|||
|
|||
|
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 |
|
|
||||
|
||||
|
|
|
#2
|
|||
|
|||
|
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. |
|
#3
|
|||
|
|||
|
> 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. |
|
#4
|
|||
|
|||
|
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 |
|
#5
|
|||
|
|||
|
> 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 |
|
#6
|
|||
|
|||
|
> 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 -- 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 |
|
|
|
|
![]() |
| Tags: |
| Strumenti della discussione | |
| Modalità di visualizzazione | |
|
|
Discussioni simili
|
||||
| Discussione | Ha iniziato questa discussione | Forum | Repliche | Ultimo messaggio |
| HD e performance | AlessandroD | Forum microsoft.public.it.sql | 14 | 10-04-2007 09:43 AM |
| Web Performance | =?Utf-8?B?SU8=?= | Forum microsoft.public.it.winserver | 1 | 11-20-2005 07:35 AM |
| Performance SP | Roberto Sartori | Forum microsoft.public.it.sql | 1 | 06-29-2005 05:12 PM |
| Performance. | Luca Bovo | Forum microsoft.public.it.sql | 2 | 01-25-2005 04:10 PM |
| performance | raVe | Forum microsoft.public.it.exchange | 0 | 10-27-2004 08:34 AM |