Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

302
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!