AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi DataSnap-Rest-Server frisst Arbeitsspeicher
Thema durchsuchen
Ansicht
Themen-Optionen

DataSnap-Rest-Server frisst Arbeitsspeicher

Ein Thema von Maliko · begonnen am 8. Sep 2021 · letzter Beitrag vom 8. Sep 2021
Antwort Antwort
Maliko

Registriert seit: 20. Jun 2019
89 Beiträge
 
Delphi 10.3 Rio
 
#1

DataSnap-Rest-Server frisst Arbeitsspeicher

  Alt 8. Sep 2021, 10:53
Hey ihrs,

ich hoffe ihr könnt mir da weiterhelfen, weil ich bin inzwischen mit meinem Latein am Ende. Und zwar habe ich einen Rest-Server über DataSnap, welcher in einem Windows-Service läuft. Solange er läuft benötigt er immer mehr Arbeitsspeicher (im Schnitt 200kb pro Minute). Die gibt er auch nicht wieder frei. Sprich es muss sich irgendwo ein Memoryleak befinden.

Da man Windows Services nicht debuggen kann, habe ich die Sourcen von der Schnittstelle aus einem anderen Projekt heraus geladen und starte die Schnittstelle über eine Form anstatt über den Service (sprich der einzige Unterschied in meiner Testumgebung ist, dass beim Debuggen der Windows-Service nicht läuft). Wenn ich das ganze jetzt starte, über meinen Rest-Client die Schnittstelle antrigger, die Schnittstelle wieder beende und das Programm schließe, dann meldet mir Deleaker, welcher mitgelaufen ist, dass keine Memoryleaks vorhanden sind. Im Taskmanager konnte ich allerdings eindeutig sehen, dass der Arbeitsspeicher zum Zeitpunkt des Requests um ca 100 kb hoch gegangen ist (daher 200kb pro Minute weil unser Monitoring die Schnittstelle alle 30 Sekunden einmal abfragt ob sie erreichbar ist).

Da auch Deleaker mir keine Leaks anzeigt und ich auch selbst nix mehr finde, hoffe ich dass vielleicht irgendjemand von euch auch so ein Problem schon einmal gehabt hat und mir dabei weiterhelfen kann. Falls ihr irgendwelchen Quellcode braucht einfach bescheid sagen was ihr braucht, dann poste ich den.

Vielen Dank schon einmal im Voraus.

Viele Grüße
Maliko
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: DataSnap-Rest-Server frisst Arbeitsspeicher

  Alt 8. Sep 2021, 11:04
Ich kenne "Deleaker" jetzt nicht, aber wenn am ordnungsgemäßen Anwendungsende keine Leaks gemeldet werden, dann ist es nichts was vergessen wird, sondern sich nur weiter anhäuft, um am Schluss wieder freigegeben zu werden.

Ich glaube mit FastMM kann man Snapshots machen und sich mitloggen lassen, wieviele TObject-artige-Instanzen bis zum aktuellen Zeitpunkt erstellt wurden.

Ansonsten, wenn du einen Ansatz hast, logge dir doch mal bei ein paar Kandidaten mit einer Klassenvariable wie oft der Konstruktor, und wie oft der Destruktor aufgerufen wurde und frag das zur Laufzeit ab.
  Mit Zitat antworten Zitat
Maliko

Registriert seit: 20. Jun 2019
89 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: DataSnap-Rest-Server frisst Arbeitsspeicher

  Alt 8. Sep 2021, 11:15
Deleaker ist eine kostenpflichtige Alternative zu FastMM (wir haben es nie geschafft FastMM vernünftig zum laufen zu bekommen und Deleaker funktioniert bei uns hingegen hervorragend). Die Idee mit den Snapshots ist vielleicht gar nicht mal so doof. Das kann Deleaker nämlich auch.
  Mit Zitat antworten Zitat
Alt 22. Nov 2021, 07:36     Erstellt von China Lee
Dieser Beitrag wurde von Daniel gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz