![]() |
Re: Kleine Integer?
Ich meinte vorher mit weniger Speicher folgendes: Auf der Festplatte verbraucht es weniger Speicher, wenn er es in ne Datei schreibt.
|
Re: Kleine Integer?
wie alle CPUs ganz genau arbeiten weiß ich doch auch nicht, aber IMHO muß ja nicht immer die gesamte Dateinbreite ausgenutzt werden ... wer sagt denn, daß die CPU icht mal nur 8, der 32 Datenleitungen verwenden muß?
Und wichtig ist doch wohl eigentlich nur, daß die CPU eben doch mit 8-Bit-Werten umgehen kann. Zitat:
|
Re: Kleine Integer?
Hallo Leute,
selbstverständlich addressiert eine Intel CPU mit einem 32-bit Datenbus auch Bytes. Darüber hinaus kann jedes general purpose register als 8-bit, 16-bit oder 32-bit Register adressiert werden. Das Grundstudium Informatik umfasst (zumindest zu meiner Zeit) auch Kurse der technischen Informatik, in denen man den Aufbau eines solchen Registers lernt. Das einzige was nicht geht ist das Laden der oberen 16 bit ohne Zerstörung der unteren 16 - wenn ich mich richtig erinnere. Grüße vom marabu |
Re: Kleine Integer?
Hallo,
Zitat:
Gruß xaromz |
Re: Kleine Integer?
Zitat:
Natürlich sollte das wohl klar sein. Meine Aussage vorher brachte ich nur, um die Aussage, <32 Bit Datentypen hätten keine Vorteile, zu widerlegen. |
Re: Kleine Integer?
Jetzt geb ich doch auch mal meinen Senf dazu:
Jede Speicherzelle (zumindest bei x86 Systemen) ist exakt 8 bit groß. Bei einem Speicherzugriff kann (je nach Datenbusbreite, das mach dann der Controller) man entweder 8, 16 oder 32 Bit lesen, da die Zellen heutzutage in 4er Gruppen angelegt sind. Wenn ich also 4 byte aus dem Speicher holen will, brauche ich entweder einen Zyklus (lesen eines Integers), zwei Zyklen (Lesen von zwei words) oder vier Zyklen (Lesen von 4 Bytes). Sicher spart man durch Verwendung vo kurzen Datentypen Speicher, aber die Geschwindigkeit leidet, wenn man nicht den Datentyp nimmt, der der Busbreite entspricht. Da heutzutage der Speicher relativ uninteressant ist, kann man durchaus ohne Bedenken mit Integer arbeiten. In der CPU ist es übrigens völlig Wurscht, welchen Typ ihr nehmt. Die CPU bietet Befehle für die Manipulation aller drei Varianten (ber 64Bittern dann vier), die sich in der Geschwindigkeit nicht nterscheiden. |
Re: Kleine Integer?
Zitat:
Kommt doch daraud an, wie man speichert, oder? :oops: Ob ich ein Integer, ein Int64 oder gar ein String mit dem Inhalt 1 / "1" in beisielsweise einer ini speichere, nimmt das doch immer denselben Platz auf der Festplatte weg, oder? :oops: Sorry, aber wahrscheinlich kenn ich mich nicht aus und bin zu naiv :roll: |
Re: Kleine Integer?
Wer redet denn von ner INI? In ner INI wird das keinen Unterschied machen, aber da wird das ja auch nicht als Ordinaltyp, sondern als String gespeichert. Wenn man das in nen Record schmeißt oder per FileStream speichert, wird weniger Platz verbraucht.
|
Re: Kleine Integer?
Zitat:
Aber ne 1 könnte ich Dir auf der Platte auch ideal mit genau einem Bit ablegen - aber dann halt nicht in einer Ini-Datei. Aber um es mal so zu sagen: Ob das nun in einem ShortInt oder in einem Int abgelegt wird ist für die Verarbeitungsgeschwindigkeit unerheblich, das der Int genauso in einem Zyklus behandelt werden kann (bei 64bit CPU's wäre das sogar ein Int64). Auf der Platte oder im Speicher kann man den Unterschied auch erst dann merken, wenn die Anzahl der so zu speichernden Werte eine nicht unerhebliche Größe erreicht. Wenn der Wert nur 10-20 mal gespeichert werden muss isses also im Prinzip egal, die paar Byte kann jeder verkraften. Bei mehreren tausend Datensätzen ist das dann schon spürbarer. |
Re: Kleine Integer?
Liste der Anhänge anzeigen (Anzahl: 2)
Wie der Speicherverbrauch der Datentypen innerhalb der CPU aussieht kann ich nicht sagen, da müsste sich mal jemand zu äußern, der sich da auskennt.
Auf alle Fälle ist der Speicherverbrauch auf dem Datenträger nur so groß, wie der Datentyp auch benötigt. Wieder mal ein fertiges Beispiel aus der Vorlesung :wink: Die oberen Memos sind für die Anzeige der Datei, wenn diese auf verschiedene Art gelesen wird. Zuvor muss sie aber erstellt werden. Der Zweck dieses Programmes sollte sein, zu zeigen, das es egal ist, wie ich eine Datei erstelle. Wichtig ist nur, das ich sie auch im selben Format auslese und mich nicht im Datentyp vertue. Dieses (einfache) Beispiel ist natürlich auch auf selbstdefinierte Datentypen übertragbar, als da seinen z.B. File of "Record" |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz