Używam małej aplikacji internetowej korzystającej z błyszczącej ramy R. Narzędzie nie robi tak wiele. To tylko filtrowanie ramek danych z danymi parametrami z interfejsu użytkownika. Problem, który mam teraz, jest następujący. Jeśli użytkownik uzyskuje dostęp do aplikacji przez http, uruchomienie aplikacji trwa długo. Ponieważ dane, które ładuję w urządzeniu global.R
, są dość duże (~ 5 GB). Po pierwszym uruchomieniu aplikacja działa płynnie, także przy ponownym dostępie w określonym czasie (aplikacja wydaje się być całkowicie w pamięci, przez kilka minut). Ponieważ mam wystarczająco dużo pamięci, a moje dane nie zmieniają się w wyniku interakcji użytkownika, zadaję sobie pytanie, czy mogę przechowywać całą aplikację w pamięci. Czy można to wymusić? Mój serwer działa centOS 6. Problemem nie jest też system plików, dysk twardy itp. - Stworzyłem dysk RAM, aby załadować dane, ale wzrost wydajności jest marginalny. Więc szyjka butelki wydaje się być R, podczas przetwarzania danych.R Błyszczące w pamięci Aplikacja lub noSQL
Teraz mam dwie pomysły, które mogą przezwyciężyć problem.
- Tak jak wspomniałem, czy można zachować całą aplikację w pamięci?
- Nie zapisuj danych jako obiektów R, zamiast tego używaj szybkiej bazy danych noSQL np. Redis, który jest w pamięci
Może jeden z was ma pewne doświadczenie przy ładowaniu większych danych. Byłbym wdzięczny, gdyby udało mi się przeprowadzić dyskusję. Jeśli to możliwe, chciałbym uniknąć zewnętrznego oprogramowania, takiego jak Redis, aby wszystko było tak proste, jak to tylko możliwe.
Z wszystkiego najlepszego,
Mario