Freier Imagespeicher wird über 512MB falsch berechnet

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
computerkranker
Beiträge: 66
Registriert: 12.10.2004 21:21

Freier Imagespeicher wird über 512MB falsch berechnet

Beitrag von computerkranker »

Es wäre nett wenn jemand mit 1GB RAM mal testen könnte wie viele Image er mit dem Code erzeugen kann und ob er mit 512MB RAM weniger erzeugen kann als mit 1GB, weil bei mir das leider so ist. Bei 512 MB werden die Image auch erzeugt bis kein Speicher mehr frei ist, bei 1GB RAM ist noch mehr als 512MB frei. Bei 2GB werden nur noch 40 Image erzeugt.

Code: Alles auswählen

Mode=1
If Mode=1
  Repeat
    Pic=CreateImage(#PB_Any,500,500)
    If IsImage(Pic)
      Piccount+1
      ;CopyImage(Pic,#PB_Any) ;wenn 1GB RAM im Rechner ist, können mit und ohne copyimage() bei mir nur 139 bilder erzeugt werden
    EndIf
  Until IsImage(Pic)=0
  Debug Piccount ; 298 mit 512MB, 139 mit 1GB RAM
Else
  Debug CreateImage(#PB_Any,6000,6000) mit 512MB wird das Image erzeugt und mit 1GB RAM nicht
EndIf

Temp:
Goto Temp
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Ich hab deinen Code mal getestet:
Ohne Copyimage(): 139
Mit Copyimage(): 70
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Benutzeravatar
computerkranker
Beiträge: 66
Registriert: 12.10.2004 21:21

Beitrag von computerkranker »

Ich hab deinen Code mal getestet
Hast du über 512MB? Weil ja erst da der Fehler bei mir entsteht.
Wenn ja hast mal den freien Speicher betrachtet? Sobald ich mehr als 512MB RAM im PC habe ist noch ne menge frei obwohl keine Image mehr erzeugt werden.
Zuletzt geändert von computerkranker am 21.03.2005 17:21, insgesamt 1-mal geändert.
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

1GB Ram:
Ohne CopyImage(): 251
Mit: 126
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

computerkranker hat geschrieben:Hast du über 512MB? Weil ja erst da der Fehler bei mir entsteht.
Wenn ja hast mal den freien Speicher betrachtet? Sobald ich mehr als 512MB RAM im PC habe ist noch ne menge frei obwohl keine Image mehr erzeugt werden.
Ich hab 1 GB RAM. Auf deine Worte hin hab ich mir mal meinen Speicherverbrauch angesehen:
Ohne Copymemory(): 139 Speicherverbrauch + 34 MB
Mit Copymemory(): 70 Speicherverbrauch + 34 MB
Dabei sind da noch knapp 650 MB frei gewesen!


Edit: Copymemory()? Wo bin ich denn hier? CopyImage() meine ich natürlich.
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Benutzeravatar
computerkranker
Beiträge: 66
Registriert: 12.10.2004 21:21

Beitrag von computerkranker »

Laurin:

Danke erstmal, es geht mir nicht so sehr um Copyimage(), sondern das halt bei einen 1GB noch so viel Speicher frei ist, aber bei 512MB solange Bilder erzeugt werden bis kein Speicher mehr frei ist. Bei 1GB werden sogar weniger Bilder erzeugt als bei 512MB.

Sicher hast keine Lust deinen Rechner um 512MB zu erleichtern um zu testen ob es sich bei dir gleich verhält.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Bei mir sinds (768 MB) 164 Images.

...wozu brauchst du überhaupt soviele Bilder?
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
computerkranker
Beiträge: 66
Registriert: 12.10.2004 21:21

Beitrag von computerkranker »

...wozu brauchst du überhaupt soviele Bilder?
Na eigentlich geht es nicht um die Anzahl. Wenn man den Speicher der erzeugten Bilder berechnet und dazu die Grösse mal ändert, bleibt der verbrauchte Speicher immer gleich, was ja auch so sein sollte . Mein Fenster ist geskint und hat viele Unterfenster. Wenn in meinen Programm mehrere MDI's geöffnet sind und das Programm maximiert ist werden nicht mehr alle Skin-Bilder erzeugt.
Was an sich auch ok wäre wenn es an der Begrenzung des Arbeitsspeichers liegen würde. Scheint aber nicht so weil auf einen 512MB RAM Rechner alles läuft und auf einen 1GB Rechner nicht, obwohl da noch weit über 820MB frei sind.
Das Programm verbraucht übrigens Insgesamt noch nicht einmal 15MB Arbeitspeicher.

Edit:
Deeem2031:
Bei mir sinds (768 MB) 164 Images.

Laurin:
Ich hab 1 GB RAM. Auf deine Worte hin hab ich mir mal meinen Speicherverbrauch angesehen:
Ohne Copymemory():mrgreen:: 139 Speicherverbrauch + 34 MB
Das meine ich, mehr RAM weniger Images.
Wenn noch 2-3 so net wären mit zu testen, dann wissen wir ob Bug oder nicht :-)[/quote]
Zuletzt geändert von computerkranker am 21.03.2005 19:22, insgesamt 1-mal geändert.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8820
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Bei mir sieht es so aus:
Wenn ich das Programm noch nicht gestartet habe sind 428 MB belegt.
Wenn ich das Programm gestartet habe sind 115 Bilder erstellt worden und 542 MB belegt.
Wenn ich das Programm mit CopyImage() gestartet habe sind 58 Bilder erstellt worden und 542 MB belegt.
(Angaben alle laut Taskmanager)
Achja: Ich habe 1024 MB SD-RAM unter Win2k.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Hab das programm 2x gestartet
einmal 149
einmal 151
RAM siehe profil...
Bild
Antworten