Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
 
Delphi 12 Athens
 
#6

AW: Welche Bitmap-Größen sind machbar?

  Alt 20. Okt 2020, 22:25
"Arbeitsspeicher" hat absolut nichts zu sagen.

Klar, wenn RAM+Auslagerungsdatei voll sind, dann schon, aber die Grenze ist selten Erreicht und leicht erweiterbar (größere Auslagerungsdatei).
Die Fragmentierung dieses Speichers ist auch total irrelevant, da fast alles verschiebbar ist.
Hier steht ein kleiner Rechner mit 63 Kernen und 98 GB RAM (40 GB Frei), aber das sag nicht aber auch garnichts aus, darüber was ein Programm Prozess nutzen kann.

Der virtuelle Speicher der Anwendung ist das Wichtige.


Der Code schaut/probiert einfach nur, was sich wirklich als Speicher reservieren lässt.
In einem Testprogramm, wo sonst nichts drin läuft und das auch grad eben erst gestartet wurde, ist das Ergebnis schnell mal anders, also wenn ein Programm schon 'nen paar Minuten/Stunden/Tage lief und wo auch schon bissl mehr drin abgeht und wieviel vorher auch schon gearbeitet wurde.


Und das was der Taskmanager anzeigt, sagt auch nicht viel aus, vor allem nicht das von der standardmäßig angezeigten Spalte "Arbeitsspeicher".
"Zugesichertet Speicher" wäre schon besser, aber schon bei der nachfolgenden Demo wirst dich bestimmt selbst wundern, dass die angezeigten Werte so nicht stimmen können. (nichtmal 3 MB)
99000*5000 ergibt bei 24 Bit eine 1,4 GB kleine BMP-Datei.
Delphi-Quellcode:
program Project2;

uses
  SysUtils, Graphics;

begin
  with TBitmap.Create do begin
    SetSize(99000, 5000);
   {for var X := 0 to Width-1 do
      for var Y := 0 to Height-1 do
        Canvas.Pixels[X, Y] := Random($FFFFFF);}

    while True do
      Canvas.Pixels[Random(Width), Random(Height)] := Random($FFFFFF);
  end;
  Sleep(99999);
end.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (20. Okt 2020 um 23:03 Uhr)
  Mit Zitat antworten Zitat