<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[RAM-Cache ...]]></title><description><![CDATA[<p>Eines meiner Programme beschreibt und liest sehr oft eine kleine Datei.<br />
Kleiner als ein Kilobyte. Wird dabei auf die Festplatte zugegriffen, oder<br />
hält das Betriebssystem ( Hier Windows XP Home ) die Datei in einem RAM-<br />
Speicherbereich ( Cache ) ? Sonst würde wohl die Festplatte schnell fragmentiert werden. Noch eine Frage, kann es sein, dass bei NTFS die keinste Speichereinheit 4 Kilobyte beträgt ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/243157/ram-cache</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 04:54:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/243157.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 13 Jun 2009 12:13:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to RAM-Cache ... on Sat, 13 Jun 2009 12:13:56 GMT]]></title><description><![CDATA[<p>Eines meiner Programme beschreibt und liest sehr oft eine kleine Datei.<br />
Kleiner als ein Kilobyte. Wird dabei auf die Festplatte zugegriffen, oder<br />
hält das Betriebssystem ( Hier Windows XP Home ) die Datei in einem RAM-<br />
Speicherbereich ( Cache ) ? Sonst würde wohl die Festplatte schnell fragmentiert werden. Noch eine Frage, kann es sein, dass bei NTFS die keinste Speichereinheit 4 Kilobyte beträgt ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1725948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1725948</guid><dc:creator><![CDATA[GeorgC++]]></dc:creator><pubDate>Sat, 13 Jun 2009 12:13:56 GMT</pubDate></item><item><title><![CDATA[Reply to RAM-Cache ... on Sat, 13 Jun 2009 12:52:39 GMT]]></title><description><![CDATA[<p>GeorgC++ schrieb:</p>
<blockquote>
<p>Wird dabei auf die Festplatte zugegriffen, oder<br />
hält das Betriebssystem ( Hier Windows XP Home ) die Datei in einem RAM-<br />
Speicherbereich ( Cache ) ?</p>
</blockquote>
<p>Beim Schreiben cached er nur so lange, bis er physikalisch bereit ist auf die Platte schreiben zu <em>können</em>.</p>
<p>GeorgC++ schrieb:</p>
<blockquote>
<p>Sonst würde wohl die Festplatte schnell fragmentiert werden.</p>
</blockquote>
<p>Wenn die Datei kleiner als die Blockgröße ist, framentiert sie nicht (sie passt in genau einen Block).</p>
<p>GeorgC++ schrieb:</p>
<blockquote>
<p>Noch eine Frage, kann es sein, dass bei NTFS die keinste Speichereinheit 4 Kilobyte beträgt ?</p>
</blockquote>
<p>Kommt wohl auf die Blockgröße an. (Kann man die bei NTFS frei wählen?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1725960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1725960</guid><dc:creator><![CDATA[devkid]]></dc:creator><pubDate>Sat, 13 Jun 2009 12:52:39 GMT</pubDate></item><item><title><![CDATA[Reply to RAM-Cache ... on Sat, 13 Jun 2009 23:17:26 GMT]]></title><description><![CDATA[<p>GeorgC++ schrieb:</p>
<blockquote>
<p>Eines meiner Programme beschreibt und liest sehr oft eine kleine Datei.<br />
Kleiner als ein Kilobyte. Wird dabei auf die Festplatte zugegriffen, oder<br />
hält das Betriebssystem ( Hier Windows XP Home ) die Datei in einem RAM-<br />
Speicherbereich ( Cache ) ?</p>
</blockquote>
<p>Beim Lesen wird im Prinzip immer gecached. Beim Schreiben normalerweise auch - der Inhalt wird dann &quot;bald&quot; auf die Festplatte rausgeschrieben. Wenn du aber z.B. innerhalb einer Sekunde eine Datein 10x überschreibst, dann wird die nicht 10x auf die Platte geschrieben.</p>
<p>Und &quot;beim Schreiben normalerweise auch&quot; heisst: solange das schreibende Programm das Caching nicht verbietet, bzw. explizit &quot;flush&quot; sagt. (Das tun z.B. Datenbanken, oder andere Programme, die garantieren wollen/müssen, dass irgendwas zu einem bestimmten Zeitpunkt wirklich auf die Platte rausgeschrieben wurde, und daher z.B. einen Stromausfall überleben kann)</p>
<blockquote>
<p>Sonst würde wohl die Festplatte schnell fragmentiert werden.</p>
</blockquote>
<p>Die Fragmentierung ändert sich durch das Caching kaum. OK, es gibt Fälle wo Caching die Fragmentierung verringern kann (wenn das Dateisystem mitspielt, wobei ich nicht weiss ob NTFS das kann). Allerdings wird deine Platte ja nicht dadurch fragmentiert wenn du immer wieder die selbe Datei überschreibst. Würdest du tausende kleine Dateien anlegen, dann einige davon wieder löschen, und zwischendurch noch grosse Dateien schreiben, wäre es etwas anderes.</p>
<blockquote>
<p>Noch eine Frage, kann es sein, dass bei NTFS die keinste Speichereinheit 4 Kilobyte beträgt ?</p>
</blockquote>
<p>Die Default-Clustergrösse von NTFS ist 4kB. Das heisst auch dass Platz für Dateien in 4kB Einheiten reserviert wird. NTFS verwendet aber einige Optimierungen, so dass ganz kleine Dateien (sagen wir ein paar hundert Byte gross) nicht gleich einen ganzen Cluster für den Inhalt verbrauchen.<br />
Du kannst aber (bei Platten mit 512 Byte Blöcken, was Standard ist) auch Cluster-Grössen von 512 Byte bis 64kB verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726189</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 13 Jun 2009 23:17:26 GMT</pubDate></item></channel></rss>