Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Freax
    Registrato dal
    Jul 2006
    Messaggi
    460

    [C#] CLR a 64 bit?

    ho iniziato a leggere qualcosa sul C#, lo trovo molto simile ad altri linguaggi orientati agli oggetti, ma ad una domanda non ho trovato ancora una risposta: esiste una CLR a 64 bit? Cioé esiste il supporto per programmi fatti in C#, magari usando il framework .Net o altri, che permetta di compilarli a 64 bit?

    la mia domanda viene dal fatto che trovo sempre specificati con esattezza i bit assegnati dal compilatore per allocare i tipi primitivi, questo mi lascia sospettare che esista solo un supporto ai 32bit.

  2. #2
    No, il .NET Framework esiste anche in versione a 64 bit (la cosiddetta architettura x64). I tipi primitivi non cambiano dimensione, ma il tipo IntPtr (che viene usato in genere nel marshaling) è delle dimensioni dei puntatori "nativi" dell'architettura in uso.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di Freax
    Registrato dal
    Jul 2006
    Messaggi
    460
    Originariamente inviato da MItaly
    No, il .NET Framework esiste anche in versione a 64 bit (la cosiddetta architettura x64). I tipi primitivi non cambiano dimensione, ma il tipo IntPtr (che viene usato in genere nel marshaling) è delle dimensioni dei puntatori "nativi" dell'architettura in uso.
    in pratica non godo dei vantaggi tipici di una architettura a 64 bit?

  4. #4
    Originariamente inviato da Freax
    in pratica non godo dei vantaggi tipici di una architettura a 64 bit?
    Perché dici questo? Se ti serve un int a 64 bit usa un Int64 (ovvero un long, sapendo che su architettura a 32 bit andrà più lento di un int), se ti serve un intero a 32 bit usa un Int32 (ovvero un int), che andrà ugualmente veloce.

    I vantaggi dell'architettura a 64 bit c'entrano molto poco con le dimensioni degli interi (di rado è fondamentale avere una manipolazione veloce di interi a 64 bit), l'utilità fondamentale sta nella possibilità di indirizzare più memoria (a livello fisico) e nell'avere uno spazio di indirizzi virtuale a 64 bit (e quindi non si incorre nel classico problema del non poter mappare in memoria più di 2/3 GB di dati).

    Per quanto riguarda in particolare l'architettura x64, gli altri vantaggi fondamentali sono il maggior numero di registri general-purpose (che nell'architettura x86 scarseggiano) e la garanzia di avere sicuramente dei set di istruzioni avanzati come SSE2 (ma per .NET questo non è importante, dato che, essendo JIT-compilato, il JIT compiler già sa esattamente che set di istruzioni sono disponibili). Nulla che abbia particolare attinenza con gli interi a 64 bit.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di Freax
    Registrato dal
    Jul 2006
    Messaggi
    460
    quindi alla fine un beneficio c'è, il famoso long rimane più veloce su un X64?

  6. #6
    Esatto. Su x86, invece, risultano più lente, dato che l'intero di dimensioni "native" della CPU è a 32 bit.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Moderazione

    Le domande su .NET Framework e linguaggi relativi hanno un'area dedicata.
    Sposto la discussione e invito a postare nella sezione corretta in futuro.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

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.