Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   FastXMM - Speicher Manager (https://www.delphipraxis.net/52626-fastxmm-speicher-manager.html)

himitsu 21. Mai 2006 18:30

Re: FastXMM - Speicher Manager
 
Ich werd dann auf dich zukommen ... es sollte zwar jetzt soweit lauffähig sein, aber ich überarbeitet auch im Moment noch ein paar Teile ^^

PS: das DLL-Problem von oben ... hab da gerade mal as gefunden, also er hat es genau richtig bemerkt
und daher auch ein paar neue Compilerschalter eingeführt AttemptToUseSharedMM und ShareMMIfLibrary.
Zitat:

{Share the MM with other DLLs? - if this DLL is unloaded, then
dependent DLLs will cause a crash.}
PSS:
wer sich schonmal die FastMM4Options.inc angesehn hat, der wird sich freuen, daß mein MM nur 2 dieser Schalter benötigt und dazu noch zwei Variablen für's Debugging :)

DGL-luke 22. Mai 2006 14:41

Re: FastXMM - Speicher Manager
 
Kann man mit deinem MM dann

- Strings rundrumschieben
- Objekte rundrumschieben

?

EDIT: Intermodular mein ich natürlich...

himitsu 22. Mai 2006 15:02

Re: FastXMM - Speicher Manager
 
Es kann kann im Grunde alles rumgeschoben werden, was einen eigenen Speicherblock besitzt.

Wobei einiges speziell behandelt wird ... so müssen z.B. dynamischen Arrays und AnsiStrings (WideStrings werden ja von der OLE32 verwaltet) extra gehandhabt werden, weil da der Pointer nicht direkt auf den Speicherblock zeigt.

Was genau verschoben werden darf, gibt der Programmierer selber an, wobei in meinem Gesamtprojekt auch schon einige Dinge (unteranderem einige Klassen) sind, welche selber sagen was bei ihnen erlaubt ist.
So ist z.B. in der Exceptionbehandlung das OutOfMemory-Exception-Objekt, welches beim Programmstart initialisiert wird und welches zwar nicht selber verschben werden kann, aber zumindestens der darin enthaltenen String wird von ihm zum verschieben freigegeben.

Amnon82 22. Mai 2006 23:21

Re: FastXMM - Speicher Manager
 
Jo ich freu mich schon auf die erste Release Deiner Überarbeitung. Lass Dir Zeit ...

Gruber_Hans_12345 31. Mai 2006 14:45

Re: FastXMM - Speicher Manager
 
Also ich wollte den auch mal testen.

Aber leider bekomme ich eine Fehlermeldung nach der anderen.
Jetzt werde ich wohl den "normalen" FastMM4 verwenden, der funktioniert bis jetzt ohne Probleme.

Das einzige was mich noch stört sind die Meldungen der Speicherleeks vom Delphi selbst (Hilfssystem usw.)
und das die Auflistung der Leeks usw. nicht so schön wie bei MemCheck ist.

himitsu 31. Mai 2006 15:24

Re: FastXMM - Speicher Manager
 
Wie gesagt, die neue Version ist noch nicht ganz fertig ... eine erste "unfertige" Testversionist an Amnon82 zwar raus, aber selbst wenn die ohne Probleme läuft brauch ich noch ''nen Weilchen.

Amnon82 2. Jun 2006 21:37

Re: FastXMM - Speicher Manager
 
Hab Deine zweite unfertige Version getestet. Der Port von D10 auf D9 und D7 klappt super. Läuft alles rund.
Wann gedenkst Du mit einem Borlndmm.dll-Ersatz? Debug-Mode ist noch buggy. FastMM hat probs mit D9PE. Könnte ja sein, dass Dein MM dieses Problem nicht hat.

himitsu 3. Jun 2006 09:40

Re: FastXMM - Speicher Manager
 
Ich werd' wohl ab ende nächster Woche für ein/zwei Wochen genug Zeit haben, um richtig "viel" proggen zu können ... vielleicht schaff ich es da ja ._.

Wie gesagt, ein paar Probleme gibt es ja noch.

Der DebugMode läuft nicht ... wäre schon Nett, wenn man die LogFunktion zur Fehlersuche nutzen könnte, aber leider ist die (noch) mit dem DebugMode verknüpft.

Und dann halt das Problem mit dem UsageTracker ... ich weiß daß es da einen Fehler gib ... nur sieht es bisher danach aus, als wenn der im MemoryManager (GetMem/ReallocMem) liegt und nicht in den Funktionen für diesen Tracker. :wall:
Obwohl es natürlich auch an ein paar Komponenten auf der Form liegen könnte.
TStringGrid und Co., obwohl die da zwar demnächt eh rausfliegen, aber der Fehler ist ja dennoch vorhanden. -.-''

Kannst den ja mal aktivieren - bei mir stürtzt der jedenfalls beim Aufruf von := TFastXUsageTracker.Create(nil) (FNS_MemoryUT.pas) ab.
Delphi-Quellcode:
// TestU.pas
Procedure TForm1.FormCreate(Sender: TObject);
  Begin
    ...
    FastXUsageTracker_Show;
  End;

Amnon82 3. Jun 2006 21:39

Re: FastXMM - Speicher Manager
 
http://img384.imageshack.us/img384/5711/stack4ij.png

Zu Deiner Frage aus der PM. Ich bin in Bayern geboren. English hatte ich nur getextet, da ich öfter in englishen Foren schreibe und halt grad so drin war. Ich merk es fast nicht mehr ob ich english oder deutsch schreibe. Ist für mich fast gleich. Passiert mir öfter, dass ich mal english denke und deutsch ausspreche und mich somit verhaue (rechnen). So zurück zum Thema.

Wie du im Screenshot siehts kann ichs auch nicht compilen. Eine Fehlermeldung kommt in dem Sinn nicht bei mir. Delphi weigert sich einfach.

himitsu 5. Jun 2006 19:31

Re: FastXMM - Speicher Manager
 
Also ein Problem hab ich jetzt endeckt ... da suche sich Wochenlang nach 'nem Fehler in meinem MM und dann war der ganz wo anders :wall:

Hab mich beim Auslesen der ResourceStrings an den Code aus der System.pas gehalten (nur halt alles nach Unicode umgestellt und jetzt stellte sich raus, daß dieser Code nicht funktioniert und in der System.dcu von Borland wieder alles nach LoadString umgeleitet wurde, weil die es selbst nicht hinbekommen hatten den Code in der System.pas um laufen zu bringen (in D7 wohlgemerkt und ich hab mal in die System.dcu von D2006 geguckt, da haben die das Problem auch noch nicht hinbekommen ... na ja, jetzt hab ich das mal hinbekommen und zumindestens ein Fehler ist weg ^^)


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:38 Uhr.
Seite 2 von 3     12 3      

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