Announcement

Collapse
No announcement yet.

Speicherverwaltung in Anwendungen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Speicherverwaltung in Anwendungen

    Hi,

    ich habe eine MDI-Anwendung mit ca. 300 Fenstern, die natürlich alle nur dann erzeugt werden wenn Sie gebraucht werden.
    Die eigentliche Exe ist mittlerweile 12MB groß.
    Nach ca. 16 geöffneten fenstern verbraucht die Anwendung lt. Task Manager 41MB und das Programm meldet zu wenig Arbeitsspeicher beim öffnen des nächsten Fensters.
    Bei einem Rechner mit 1GB Arbeitsspeicher verstehe ich nicht ganz was da voll ist.
    Früher bei den Dos Anwendungen gab es einen sehr begrenzten Stack.
    Gibt es diese Grenze immernoch? Was kann ich tun um nicht diese Speicherprobleme zu bekommen.
    Kann ich den maximalen Speicherbedarf eines Fensters zur Laufzeit ermitteln?

    Gruss
    Andreas

  • #2
    > Nach ca. 16 geöffneten fenstern verbraucht die Anwendung lt. Task Manager 41MB und das Programm meldet zu wenig Arbeitsspeicher beim öffnen des nächsten Fensters.

    Win9x/ME - Falls ja so bist du auf einer der noch unter Win9x/ME vorhandenen 64 kByte gestoßen die im Bereich GUI-Resourcen noch existieren.

    > Früher bei den Dos Anwendungen gab es einen sehr begrenzten Stack. Gibt es diese Grenze immernoch?
    Du kannst in den Linker-Optionen die Stack-Größen einstellen, aber ich denke nicht das das dein Problem ist.

    Bau mal in den Programm <a href="http://v.mahon.free.fr/pro/freeware/memcheck/">MemCheck</a> oder <a href="http://sourceforge.net/projects/fastmm/">FastMM</a> um zu checken ob du irgendwo evtl. noch zusätzlich Speicherlücken im Code hast

    Comment


    • #3
      Moin Andreas,

      sind in Deinen Fenstern vielleicht gekappselte Zugriffe (z.B. mit jeweils eigener Session) auf die BDE integriert ? - Dann einfach in der BDE-Verwaltung SHAREDMEMSIZE hochsetzen.

      Gruß,

      Geer

      Comment


      • #4
        Ich verwende nur zwei Sessions und habe bisher auch keine Notwendigkeit gesehen für jedes Fenster eine eigene zu machen. Gibt es einen Grund dafür?

        Ich habe nur die Eigenschaft SHAREDMEMSIZE von 2048 auf 8192 hochgesetzt.
        Der Effekt ist verblüffend. Wir haben das beim Kollegen mit 512MB Speicher probiert. Vorher konnten wir 26 Fenster öffnen nach der Umstellung haben wir bei 110 aufgehört.

        Dank

        Comment


        • #5
          Mal wieder ein Grund mehr die BDE auch in diesem Projekt zu entsorgen - nur mal am Rand bemerkt

          Comment

          Working...
          X