![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#4
|
|||
|
|||
|
Correcto, las clases del tipo TRemotable (usadas en Delphi para SOAP WebServices) no pueden medirse directamente en bytes como lo harías con un array o una estructura común. Esto se debe a que:
TRemotable hereda de TPersistent, y puede tener propiedades complejas, referencias, objetos anidados, etc. No tiene una representación fija en memoria como un record, porque sus propiedades pueden estar implementadas por métodos get/set. Algunas propiedades pueden ser dinámicas, opcionales o contener listas de objetos. ¿Qué hacer si quieres conocer el “tamaño” real de una instancia de TRemotable? La mejor forma es serializar el objeto y medir el resultado, por ejemplo, en XML (formato que SOAP usa). Ejemplo: medir el tamaño en bytes serializando con TSoapSerializer
¿Qué hace esto? Usa TSoapSerializer y TOPToSoapDomConvert para serializar el objeto TRemotable a XML. Escribe esa serialización a un TMemoryStream. Devuelve el tamaño del stream como tamaño aproximado del objeto. Cómo usarlo:
Consideraciones El tamaño obtenido es el tamaño de la representación serializada, no de la estructura en RAM. Este método sigue siendo válido si el objeto contiene otros TRemotable anidados. |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Saber cuanto ocupa un objeto en memoria | AFilth | Varios | 10 | 28-01-2009 18:46:03 |
| Duda para saber que objeto esta em memoria | Paulao | Varios | 0 | 23-08-2008 15:16:44 |
| Conocer el estado de la Memoria RAM | Khronos | Trucos | 1 | 07-11-2007 17:15:08 |
| Conocer el tamaño de los datos filtrados en delphi | royrogers84 | Firebird e Interbase | 1 | 18-11-2006 22:14:26 |
| Fast Report: Ajustar tamaño objeto OLE | kes | Impresión | 0 | 13-10-2003 09:59:18 |
|