Sto scrivendo un'applicazione in cui le prestazioni sono abbastanza critiche. Sono un po 'confuso su quale sia il tipo di dati più efficiente per le CPU x64.Codice efficiente: tipi di dati short vs integer in VB.Net
MDSN dice che "In some cases, the common language runtime can pack your Short variables closely together and save memory consumption." ma anche che "The Integer data type provides optimal performance on a 32-bit processor"
sto usando un enorme quantità di dati (in media circa 5 milioni di valori in una matrice irregolare [10 o più] [30] [128.128]) per generare immagini bitmap in tempo reale (mappe di calore dei valori dei dati). Tutti i punti di dati sono numeri interi compresi tra 200 e 3500, quindi posso usare breve o intero. Quale sarebbe più efficiente?
Grazie.
Che cosa significa "enorme"? Sei a rischio di ottenere un 'OutOfMemoryException' con numeri interi? Altrimenti usa interi, una CPU è progettata per funzionare in modo efficiente con valori a 32 bit. –
In media 128 * 128 * 30 * 10 valori di dati (4915200) in una matrice seghettata. L'utilizzo della memoria è OK, circa 230 MB sulla mia macchina, che è una specifica media per l'azienda. La ragione per cui la sto chiedendo è perché sto facendo una manipolazione in tempo reale delle immagini (cambiando tonalità e così via), quindi ho bisogno che sia il più efficiente possibile. – Absinthe
Se si desidera un footprint di memoria più piccolo per i dati grezzi, utilizzare short. Se si desidera un rendering più veloce delle immagini, un altro tipo di dati potrebbe essere la scelta corretta, ma non esiste un codice da esaminare che mostri come vengono utilizzati i dati. – dbasnett