Was sind die besten Methoden, um glänzende Anwendungen schneller laufen zu lassen?

Daten

Ich habe eine glänzende Dashboard-Anwendung und mein Datensatz ist ungefähr 600 MB groß. Es schwillt jeden Monat um 100 MB an. Meine Daten befinden sich lokal in MySQL.

MenuItems:

Ich habe 6 - 7 Seitenleisten-Menüelemente in meinem Dashboard und jedes hat 10 - 12 verschiedene Ausgaben - Diagramme und Tabellen. Jede dieser Registerkarten verfügt über 3 bis 6 Eingaben, z. B. Eingabe auswählen, Schieberegler, Datumsbereich usw., um die Daten zu filtern.

Data subsets:

Da ich nicht alle Daten in den Speicher laden kann, erstelle ich für jeden Menüpunkt eine Teilmenge der Daten basierend auf dem Datumsbereich, indem ich den Datumsbereich auf 2-3 Tage ab dem Systemdatum einstelle.

Beispielsweise

df1 <- reactive({df[df$date >- dateinput[1] & df$date <- dateinput[2], ]})

Der obige Befehl ruft die Daten für meinen ersten Menüpunkt ab und abhängig von der Auswahl des Eingangs oder anderer Eingaben filtere ich die Daten weiter. Zum Beispiel, wenn ich einen selectInput für @ haGender (male and female) dann habe ich weitere teilmengedf1 bis:

df2 <- reactive({
       if(is.null(input$Gender)){ 
          df1 
       } else if(input$Gender == "Male") 
          {df1[df1$Gender == "Male",]} 
       )}

Wenn ich mehr als 1 Eingang habe, setze ich diesen df1 weiter und gebe die Werte an df2 weiter. df2 wird zum reaktiven Dataset für alle Diagramme und Tabellen in diesem MenuItem.

Umso mehr menuItem ich erstellt habe, desto mehr Teilmengen passen zu den Filtern und der Analyse.

Ich habe zwei Probleme:

Auf älteren Computern wird die App nicht geladen. unuf neueren Maschinen lädt die App manchmal sehr langsam 5 - 6 Minute

Nach dem ersten Laden der Daten werden die Diagramme und Tabellen bei reaktiven Änderungen schneller gerendert.

Um dem entgegenzuwirken, habe ich versucht, alle gängigen und sich wiederholenden Parameter und Bibliotheken nach global.R zu verschieben.

Ich habe zwei Fragen

1. Gibt es irgendwelche grundlegenden Hygienefaktoren, die man beachten muss, wenn man Daten in R abbaut, insbesondere durch Hochglanz (Bergbau in R ist extrem schnell)?

2. Ich habe von Parallelverarbeitung gelesen, aber fast immer geht es in allen Beispielen um die Verteilung einer einzelnen schwereren Berechnung. Können wir durch parallele Verarbeitung verteilen, die Daten unterteilen oder die Erstellung von Diagrammen / Tabellen verteilen?

Bitte beachten Sie, dass ich ein Forscher und kein Programmierer bin, aber in letzter Zeit gelernt habe, glänzende und Host-Anwendungen in der Cloud oder lokal zu verwenden.

Anleitung zu diesem Thema wird für viele unerfahrene Benutzer von R wie mich sehr hilfreich sein.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage