Zastanawiam się nad implementacją przechowywania danych kolekcji w programie. Jako że użytkownik końcowy może mieć różną ilość pamięci w komputerze, chciał bym spróbować trzymać dane w pamięci w ostateczności na dysku.
Wydaje mi się najsensowniej zrobić to tak, że po uruchomieniu programu sprawdzę ilość dostępnej pamięci RAM i na podstawie tego ustawię globalną zmienną ( powiedzmy w Settings ) na Stream albo dysku albo pamięci. Implementacja klasy ładującej pliki w sumie nie zmieniła by się wcale. Nie wiem jak wielkie dane będą zawierały wczytywane paczki ( przypuszczam, że od 3MB do 128MB jedna paczka ) i ile ich przetrzymać w pamięci.
Pytanie : Jak ustalić ilość miejsca zajmowanego w pamięci przez List<T> ? (marshal.sizeOf(), czy obliczać na podstawie klasy GC. (zapomniałem nazwę metody :( ) )