Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    286

    C++ e CLR

    Mi sembra di capire che un codice sorgente compilato in C++ con l'opzione /clr , o in C#, oltre il fatto che per essere eseguito necessita il .NET Framework sulla macchina che lo ospita, sia in fase di esecuzione molto più lento di un codice C++ standard (Unmanaged).

    Siccome sto pensando di imparare a riscrivere i Miei codici C++ utilizzando le librerie standard, ed abbandonando il tanto comodo .NET, qualcuno saprebbe darmi conferma o smentita di quanto ho scritto?


    Saluti

  2. #2
    Il codice in sé non è più lento, semplicemente c'è un leggero ritardo alla prima esecuzione di ogni funzione dovuto alla sua JIT-compilazione; è certo però che alcune comodi classi del .NET Framework (come la classe String) forniscono una semplicità d'uso che paghi in termini di prestazioni; il vero svantaggio tuttavia è che, mentre il C++ standard non richiede dependencies o quasi, il Managed C++ richiede un enorme runtime (il .NET Framework).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    286
    Ok, dunque non tutto il codice MSIL viene tradotto dal JIT in codice nativo ma solo quello necessario durante l'esecuzione, e una volta tradotto in linguaggio nativo, il codice nativo rimane in memoria per le esecuzioni sucessive. Allora non dovrebbe essere tanto più lento. Non mi rimane che testare le due diverse opzioni con un cronometro.

    C'è anche da dire che compilando con codice Non-Gestito è necessaria una buona cognizione di causa su quello che si sta facendo visto che si genera del codice direttamente eseguibile dal processore, non sarà disponibile ad esempio il Garbage Collector che verrebbe invece automaticamente gestito dal .Net framework.

    Sono un po' combattuto!

  4. #4
    Originariamente inviato da Paulin
    Sono un po' combattuto!
    L'eterno conflitto tra prestazioni e comodità per il programmatore!
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da Paulin
    Sono un po' combattuto!
    Tanto per sapere, che tipo di applicazioni devi realizzare?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    286
    Per ora si tratta di semplici funzioni di conversione/elaborazione di file di testo che contengono percorsi per macchine utensili, a volte si tratta di testi che possono arrivare anche a 1x10^6 linee ed oltre.

    Ho anche uno o due algoritmi che lavorano con il metodo del calcolo numerico ad elementi finiti, qui serve una macchina con molta ram, e anche la velocità di calcolo non guasta.

    Il problema è che se in futuro mi dovesse capitare di progettare applicazioni critiche, probabilmente non avrò imparato a padroneggiare il C++ standard.


    ...

  7. #7
    Ti conviene usare il C++ standard...
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.