Каковы лучшие методы для ускорения работы блестящего приложения?
Данные:
У меня блестящее приложение на панели инструментов, и мой набор данных имеет размер около 600 МБ. Он набухает на 100 МБ каждый месяц. Мои данные хранятся локально в MySQL.
Пункты меню:
У меня есть 6 - 7 элементов меню боковой панели на моей приборной панели, и у каждого из них есть 10 - 12 различных выходов - диаграммы и таблицы. Каждая из этих вкладок имеет 3 - 6 входов, таких как selectizeInput, ползунок, диапазон дат и т. Д. Для фильтрации данных.
Подмножества данных:
Поскольку я не могу загрузить все данные в память, для каждого пункта меню я создаю подмножество данных на основе диапазона дат, сохраняя диапазон дат только на 2–3 дня от системной даты.
Например:
df1 <- reactive({df[df$date >- dateinput[1] & df$date <- dateinput[2], ]})
Выше приведены данные для моего первого пункта меню, и в зависимости от selectInput или других входов, я дополнительно фильтрую данные. Например, если у меня есть selectInput дляGender (male and female)
тогда я далее подмножествоdf1
чтобы:
df2 <- reactive({
if(is.null(input$Gender)){
df1
} else if(input$Gender == "Male")
{df1[df1$Gender == "Male",]}
)}
Если у меня более 1 входа, я задаю этот df1 и передаю значения в df2. df2 становится реактивным набором данных для всех диаграмм и таблиц в этом MenuItem.
Чем больше количество пунктов меню, тем больше я создаю поднаборов для фильтров и анализа.
Я сталкиваюсь с двумя проблемами:
На старых машинах приложение не загружается. а такжеНа новых машинах приложение загружается очень медленно, иногда 5 - 6 минутПосле первого набора данных диаграммы и таблицы обрабатываются быстрее при реактивных изменениях.
Чтобы противостоять этому, я попытался переместить все общие и повторяющиеся параметры и библиотеки в global.R.
У меня есть два вопроса:
1. Существуют ли какие-либо основные гигиенические факторы, которые необходимо учитывать при добыче данных в R, особенно через блестящий режим (Mining in R чрезвычайно быстр).
2. Я читал о параллельной обработке, но почти всегда все примеры говорят о распределении одного более тяжелого вычисления. Можем ли мы распространять через параллельную обработку, подмножество данных или распространение диаграмм / таблиц.
Обратите внимание, что я исследователь, а не программист, но недавно научился использовать блестящие и размещать приложения в облаке или локально.
Руководство по этому вопросу будет очень полезно для многих начинающих пользователей R, таких как я.