Virtual method interception - introdotto con Delphi XE - può essere utilizzato per i metodi "proxify" in modo che il codice personalizzato possa essere eseguito prima e dopo il metodo originale.È possibile implementare il monitoraggio del conteggio delle istanze mediante TVirtualMethodInterceptor?
Potrebbe essere utilizzato anche per mantenere un conteggio di tutte le istanze di oggetti in un'applicazione Delphi, mediante proxyfying dei metodi virtuali TObject.AfterConstruction e TObject.BeforeDestruction?
Se sì, questo potrebbe essere un modo semplice per analizzare le statistiche di allocazione della memoria di FastMM4 in fase di esecuzione (utilizzando la proprietà InstanceSize degli oggetti e confrontandola con i blocchi di memoria allocati).
Aggiornamento: Ci scusiamo per fare una domanda che era molto facile rispondere dalle informazioni DocWiki - Ho letto l'articolo collegato prima e unica scremato il codice di esempio
... si? Non riesco a vedere perché no. Hai provato? Implementare i proxy, incrementare e decrementare un contatore (possibilmente utilizzando [incrementi/decrementi thread safe] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms683614 (v = vs.85) .aspx)) e, ehm ... eccoti. –
Non potresti farlo molto più facilmente modificando le fonti FastMM? –
@WarrenP FastMM non è a conoscenza dei tipi effettivi per cui fornisce i blocchi di memoria, elabora solo le richieste di allocazione/deallocazione di memoria – mjn