Da je reč o manjim fajlovima, moglo bi se nešto smisliti i to da radi u memoriji. Međutim, kad je reč o fajlovima neodređene veličine, tipa 700+ MB, mislim da nikakvo keširanje promena i rollback neće drastično ubrzati performanse.
Recimo da je datoteka duga 100 000 bajtova. Ako treba rollback-ovati izmene od 95 000 do 96 000 bajta, najlakše je pokupiti sadržaj od 96 001 bajta pa nadalje prepisati na mesta počev od 95 000-og bajta. Dakle, promena je na kraju fajla i količina prebačenih podataka je mala. Ali, šta ako je greška negde na početku? Treba "prebaciti" skoro ceo fajl. Na ovaj način se može dobiti na performansama ali, ne uvek.
Ako su izmene dovoljno male tako da se mogu čuvati u memoriji, onda se mogu čuvati u kolekciji i aplicirati na eksplicitan zahtev korisnikana, recimo, steku (vrsta kolekcije u .Net-u), pa kad zatreba, fajl, apliciraju se izmene po zahtevu korisnika.
Ili, ako je poznat hardver na kome će raditi ovakav softver, pre svega ako ima 1.5GB RAM-a ili više i max file je, recimo 800MB, onda se može sve čuvati u memoriji. To bi drastično ubrzalo manipulaciju fajlom, ostali bi samo inicijalno učitavanje i završno snimanje kao time consuming operacija.
[Ovu poruku je menjao bjevta dana 05.09.2007. u 21:26 GMT+1]
Acta, non verba!