Najszybszy format zapisu/odczytu plików z selektywnym wyborem danych.

0

Witam,
Czy ktoś z was zna szybki sposób dynamicznego / selektywnego zapisu danych do pliku przypominającego w działaniu bazę danych. Przetwarzam w tym momencie ogromne ilości danych (czasami zajmują po 100GB RAM) i chciałbym w przyszłości zamiast w pamięci RAM przetwarzać te dane na dysku SSD.

Chciałbym zapisać 3D tablicę w dowolnej postaci, jako plik, a następnie mieć dostęp do wybrany kolumn lub wierszy w tym pliku, tak abym nie musiał wczytywać do ram całego pliku.

Czy jest jakiaś opcja żeby poradzić sobie z tym inaczej niż baza danych? W grę wchodzi nawet zakup bilbiotek.

MZ

1

mmap?

2

Użyj plików mapowanych w pamięci (zobacz msdn memory mapped files).

0

Chyba właśnie o to mi chodizło! Dziękuję za ekspresową odpowiedź!

0

Jeśli dane mają być odczytywane z pliku, to warto zwrócić uwagę na natępujące czynniki:

  1. modyfikacja algorytmu w taki sposób, aby operował na danych w miarę sekwencyjnie
  2. zadbanie o buforowanie części danych w pamięci RAM
  3. kolejna modyfikacja algorytmu tak, aby z większym prawdopodobieństwem trafiał w bufor RAM
  4. następna modyfikacja, aby operował na jednostkach pamięci przyjaznych urządzeniu, dla dysków ssd może to być np. 4KB albo 512kb
  5. dobranie strategii buforowania do algorytmu
  6. pewnie jeszcze coś czego w tej chwili nie pamiętam..

Pozdrawiam

0
KrzysztofGDA napisał(a):

Użyj plików mapowanych w pamięci (zobacz msdn memory mapped files).

tylko może zamiast strzelać sobie w stopę, od razu używać boosta? (:

1 użytkowników online, w tym zalogowanych: 0, gości: 1