Ich schreibe eine Anwendung, wo die Leistung ziemlich kritisch ist. Ich bin ein wenig verwirrt darüber, welcher der effizienteste Datentyp für x64-CPUs ist.Effizienter Code: kurze vs Integer-Datentypen in VB.Net
MDSN sagt, dass "In some cases, the common language runtime can pack your Short variables closely together and save memory consumption." aber auch, dass "The Integer data type provides optimal performance on a 32-bit processor"
ich eine riesige Menge von Daten unter Verwendung von (durchschnittlich rund 5 Millionen Wert in einem gezackten Array [10 oder mehr] [30] [128128]) Bitmaps zu erzeugen in Echtzeit (Heatmaps der Datenwerte). Alle Datenpunkte sind ganze Zahlen zwischen 200 und 3500, also kann ich Short oder Integer verwenden. Was wäre am effizientesten?
Danke.
Was bedeutet "riesig"? Besteht die Gefahr einer OutOfMemoryException mit Ganzzahlen? Ansonsten verwenden Sie Ganzzahlen, eine CPU ist so konzipiert, dass sie effizient mit 32-Bit-Werten arbeitet. –
Im Durchschnitt 128 * 128 * 30 * 10 Datenwerte (4915200) in einem gezackten Array. Speicherverbrauch ist OK, ungefähr 230 MB auf meiner Maschine, die durchschnittliche Spezifikation für das Unternehmen ist. Der Grund, warum ich frage, ist, weil ich die Bilder in Echtzeit manipuliere (Farben ändern usw.), also brauche ich es so effizient wie möglich. – Absinthe
Wenn Sie einen kleineren Speicherbedarf für die Rohdaten benötigen, verwenden Sie short. Wenn Sie ein schnelleres Rendern der Bilder wünschen, ist möglicherweise ein anderer Datentyp die richtige Wahl, aber es gibt keinen zu untersuchenden Code, der zeigt, wie die Daten verwendet werden. – dbasnett