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

#6 Harvey Triana
18/04/2007 - 18:46 | Informe spam
Es la referencia. Esta muy bien. Habia pensado en las demás opciones que
sugieres.

Gracias,
<Harvey Triana />



"Alfredo Novoa" escribió en el mensaje
news:
On Tue, 17 Apr 2007 14:33:08 -0500, "Harvey Triana"
wrote:

Corolario

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



Eso es justo lo que hace DateTime.


Saludos

Respuesta Responder a este mensaje
#7 RFOG
18/04/2007 - 21:08 | Informe spam
Cuando invoques a cualquier método de la estructura, cuando la pases a un
método, cuando quites y pongas elementos...

En Wed, 18 Apr 2007 17:26:07 +0200, Harvey Triana
escribió:

Hola

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...



¿En donde lo trato como un objeto?

<Harvey Triana />




"RFOG" escribió en el mensaje
news:
En Tue, 17 Apr 2007 21:33:08 +0200, Harvey Triana
escribió:

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 />






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.









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.
Respuesta Responder a este mensaje
#8 Alfredo Novoa
18/04/2007 - 22:05 | Informe spam
On Wed, 18 Apr 2007 21:08:25 +0200, RFOG
wrote:

Cuando invoques a cualquier método de la estructura, cuando la pases a un
método, cuando quites y pongas elementos...



Si eso fuese cierto las estructuras no valdrían para nada.


Saludos
Respuesta Responder a este mensaje
#9 RFOG
18/04/2007 - 22:30 | Informe spam
En Wed, 18 Apr 2007 22:05:19 +0200, Alfredo Novoa
escribió:

On Wed, 18 Apr 2007 21:08:25 +0200, RFOG
wrote:

Cuando invoques a cualquier método de la estructura, cuando la pases a
un
método, cuando quites y pongas elementos...



Si eso fuese cierto las estructuras no valdrían para nada.


Saludos



Essential C# 2.0, de Mark Michaelis, páginas 305-308

Mi opinión, aparte de la de Mark: la dualidad pila/montículo de los "value
types" (tal y como está implementada) casi invalida al C# y en general al
.NET como algo válido.

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.
Respuesta Responder a este mensaje
#10 Alfredo Novoa
18/04/2007 - 23:48 | Informe spam
On Wed, 18 Apr 2007 22:30:05 +0200, RFOG
wrote:

Cuando invoques a cualquier método de la estructura, cuando la pases a
un
método, cuando quites y pongas elementos...



Si eso fuese cierto las estructuras no valdrían para nada.



Essential C# 2.0, de Mark Michaelis, páginas 305-308



No veo nada de eso por ninguna parte. Además he probado a descompilar
y tampoco. Solo hay "boxing" cuando asignas una estructura a un
objeto.


Saludos
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida