Acerca del objeto DateTime

17/04/2007 - 21:33 por Harvey Triana | Informe spam
Si yo escribo algo como:

public struct WITSTable
{
public DateTime t;
public float v;
}
const int COUNT = 100000;
WITSTable[] a = new WITSTable[COUNT];

El peso del array es considerable. ¿Existe una manera más eficiente de
escribir esto?
Si yo escribo en Visual Basic clásico:

Public Type WITSTable
DateTime As Date
Value As Single
End Type
Private Const COUNT As Long = 100000
Private a(1 To COUNT) As WITSTable

El peso del array es ligero.

Corolario

Quisiera que existiera un tipo en .NET que almacenara tiempo en solo 8 bytes
por variable.

Su servidor,
<Harvey Triana />

Preguntas similare

Leer las respuestas

#1 RFOG
18/04/2007 - 10:06 | Informe spam
En Tue, 17 Apr 2007 21:33:08 +0200, Harvey Triana
escribió:

Mostrar la cita
No solo el peso es considerable, sino que cada vez que trates eso como
objeto en lugar de como tipo básico vas a generar unos boxing/unboxing de
órdago y el rendimiento va a ser peor que pésimo...

Para eso lo mejor es que uses genéricos, si quieres acceder como un array
usa una lista:

List<WITSTable> miLista=new List<WITSTable>();

Ahora, que el box/unbox no te lo quita nadie. Casi sería preferible que
cambiaras esa estructura por una clase... Aunque la estructura DateTime
sigue siendo eso, una estructura.

Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
Si hubiera un solo hombre inmortal sería asesinado por los envidiosos.
#2 Harvey Triana
18/04/2007 - 17:26 | Informe spam
Hola

Mostrar la cita
¿En donde lo trato como un objeto?

<Harvey Triana />




"RFOG" escribió en el mensaje
news:
Mostrar la cita
#3 Alfredo Novoa
18/04/2007 - 17:52 | Informe spam
On Tue, 17 Apr 2007 14:33:08 -0500, "Harvey Triana"
wrote:

Mostrar la cita
1.200.000 bytes

A mi me parece que está bastante bien.

Mostrar la cita
Si, puedes almacenar la fecha en un entero de 32 bits.

Otra solución es usar enteros de 16 bits donde caben cerca de 45 años.

Otra es usar algún algoritmo de compresión, pero ya se complica
bastante la cosa.


Saludos
#4 Alfredo Novoa
18/04/2007 - 17:55 | Informe spam
On Tue, 17 Apr 2007 14:33:08 -0500, "Harvey Triana"
wrote:

Mostrar la cita
Eso es justo lo que hace DateTime.


Saludos
#5 Alfredo Novoa
18/04/2007 - 17:57 | Informe spam
On Wed, 18 Apr 2007 17:52:33 +0200, Alfredo Novoa
wrote:

Mostrar la cita
Perdón, cerca de 180 años.


Saludos
Ads by Google
Search Busqueda sugerida