Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

300
Vistas
¿Puedo hacer el equivalente de una conversión de C en una matriz en F#?

Tengo una gran variedad de este tipo:

 type TradeData = { Timestamp: DateTime Instrument: Instrument Price: decimal Quantity: decimal Direction: Direction }

Estamos hablando de varios gigabytes cargados cada vez durante la depuración. Los datos se almacenan en el disco en formato binario usando FSPickler, que es mucho más rápido que Json, pero aun así tarda mucho en cargarse. Lo aceleré cortando el archivo en fragmentos de 1 h y cargándolos en paralelo, pero aún tardamos entre 15 y 20 segundos al comienzo de cada sesión de depuración.

Lo que me gustaría saber es si puedo poner los datos en una matriz, escribir la matriz como un blob binario. Luego cargaría el blob y haría algo como:

 myData = (TradeData *) pBinaryBlob

No estoy seguro de si esto es factible en dotnet, o si cada objeto realmente necesita inicializarse de forma independiente.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Esto probablemente se pueda hacer siempre que use struct s en lugar de objetos. Si ya ha serializado el archivo como objetos, es posible que deba volver a serializar el archivo una vez para alinear los bits con las estructuras o anotar cuidadosamente su estructura con las alineaciones de bytes necesarias.

Si lee FileStream en búferes de bytes, entonces consideraría usar nativeptr<'T> o (ReadOnly)Span<'T> y MemoryMarshal.Cast para realizar una conversión unsafe .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda