Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Eigener Dienst -> Speicherauslastung wächst und wächst... (https://www.delphipraxis.net/112046-eigener-dienst-speicherauslastung-waechst-und-waechst.html)

hoika 21. Apr 2008 11:14

Re: Eigener Dienst -> Speicherauslastung wächst und wächs
 
Hallo,

also ich benutze ja memcheck.

In der dpr als 1 .unit

uses
MemCheck


und nach begin

MemChk;


Ich würde den Code mal in ein normales Programm kopieren
und dort laufen lassen.
Memcheck zeigt nach dem Abschluss eine Datei mit memleaks an.


Heiko

cherry 21. Apr 2008 11:20

Re: Eigener Dienst -> Speicherauslastung wächst und wächs
 
Ok, dann versuch ichs mal mit MemCheck... wo krieg ich denn das her?

MagicAndre1981 21. Apr 2008 11:31

Re: Eigener Dienst -> Speicherauslastung wächst und wächs
 
Bei Google suchenMemCheck

erster Treffer ;)

hoika 21. Apr 2008 13:21

Re: Eigener Dienst -> Speicherauslastung wächst und wächs
 
Hallo,

und dann in der dpr als erste unit MemCheckrein

und in der dpr als 1. Zeile

MemChk;


dann ein komplettes Rebuild und Programm laufen lassen.
Nach dem Beenden zeigt er die memleaks an.


Heiko

Dezipaitor 21. Apr 2008 13:35

Re: Eigener Dienst -> Speicherauslastung wächst und wächs
 
TJwTerminalServer.Enumeratesessions erzeugt ein Memoryleak, weil es einen Thread verwendet, der eine Variable nicht freigibt. In der Subversion Trunk version ist dieser Fehler behoben.

You should update
your source to the latest version in the version control repository and try again. To do so, use a subversion client like Tortoise SVN
and just hit SVN update in the explorer's context menu on the "trunk" folders of JWSCL also JWA.

Der GetSessionCode ist übrigens inkorrekt. So stimmt es schon eher
Delphi-Quellcode:
function TSisterWatch.GetSession: String;
var
  TS : TJwTerminalServer;
begin
  TS := TJwTerminalServer.Create;
  try
    TS.Connect;
    TS.EnumerateSessions;
    Result := TS.Sessions[0].Username;
    // every second before the first login it raise an exception!
  except
    result := '';
  end;
  FreeAndNil(TS); {its very important to free TS memory!}
end;

Dezipaitor 21. Apr 2008 14:51

Re: Eigener Dienst -> Speicherauslastung wächst und wächs
 
Du kannst auch schneller an den Benutzernamen der Session 0 herankommen.
Siehe http://blog.delphi-jedi.net/2008/04/...m-a-service-2/

cherry 21. Apr 2008 15:48

Re: Eigener Dienst -> Speicherauslastung wächst und wächs
 
Hi Dezipaitor

Zitat:

Zitat von Dezipaitor
Du kannst auch schneller an den Benutzernamen der Session 0 herankommen.
Siehe http://blog.delphi-jedi.net/2008/04/1 ... the-users-token-from-a-service-2/

Natürlich werde ich das dann in Zukunft wahrscheinlich so machen, aber um das Problem jetzt nicht einfach zu Umgehen...

Zitat:

Zitat von Dezipaitor
TJwTerminalServer.Enumeratesessions erzeugt ein Memoryleak, weil es einen Thread verwendet, der eine Variable nicht freigibt. In der Subversion Trunk version ist dieser Fehler behoben.

//EDIT

also meinst du nicht auch, dass dies die neuste Version ist: jwscl-release-revision-316

die hab ich jetzt runtergebeamt kompilliert und verwendet. Das Phänomen ist aber immer noch vorhanden?! hab ich jetzt was verpasst?! -Haste wohl nicht ganz so gemeint oder?
:gruebel: :oops:

//EDIT -> hehe, hab wohl das englische nicht ganz kapiert zu beginn... versuche das jetzt mal, melde dann mein Status zurück...

Dezipaitor 21. Apr 2008 15:58

Re: Eigener Dienst -> Speicherauslastung wächst und wächs
 
Version 316 ist die neueste Release version. Es gibt neuere Version im Entwicklerzweig (trunk).

cherry 21. Apr 2008 16:56

Re: Eigener Dienst -> Speicherauslastung wächst und wächs
 
hab jetzt also SVN Update (TortoiseSVN) auf folgende Ordner gemacht.

...\JWSCL\jedi-api-lib\jwapi\trunk
...\JWSCL\jedi-api-lib\jwscl\trunk

und alle 4 Projekte in "JWSCL\jedi-api-lib\jwapi\trunk\Packages\bds10\JediApi_Bds10.bdsgr oup" neu kompilliert

sollte mein Speicherproblem jetzt nicht vom Tisch sein? -Ist aber immer noch dasselbe... hab ich was übersehen beim updaten von trunk?!...

Dezipaitor 21. Apr 2008 16:58

Re: Eigener Dienst -> Speicherauslastung wächst und wächs
 
mach getSession raus und nutze stattdessen deinen Benutzername. Wenn es immernoch ein Speicherleck gibt, dann ist es was anderes.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 Uhr.
Seite 2 von 5     12 34     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz