Что Erlang является секретным к масштабируемости?

Сложнее всего иметь столбец в вашем наборе данных в качестве даты. Давай сделаем это вместе. Во-первых, давайте использовать эти данные для решения нашей проблемы:

sample_data <- structure(list(purchase_month = structure(c(17713, 17744, 17775,
  17805, 17713, 17744, 17775, 17805), class = "Date"), type = structure(c(2L,
  2L, 2L, 2L, 1L, 1L, 1L, 1L), .Label = c("domestic", "local"), class = "factor"), 
  orders = c(199, 231, 222, 190, 1102, 924, 999, 779)), row.names = c(NA, 
  -8L), class = "data.frame")

Это данные, которые мы будем использовать:

sample_data
  purchase_month     type orders
1        2018-07    local    199
2        2018-08    local    231
3        2018-09    local    222
4        2018-10    local    190
5        2018-07 domestic   1102
6        2018-08 domestic    924
7        2018-09 domestic    999
8        2018-10 domestic    779

Обратите внимание, что purchase_month не является датой. Я преобразую его в дату, добавив -01 к ее концу, потому что каждая дата в R нуждается в дне. Так как вас интересуют месяцы, мы можем использовать любой день здесь. Затем я буду использовать функцию ymd из пакета lubridate, чтобы сообщить R, что наши строки имеют формат год-месяц-день:

library(lubridate)
sample_data$purchase_month <- ymd(paste0(sample_data$purchase_month, "-01"))

Нет, вам просто нужно использовать свой собственный [1110 ] код для того, чтобы иметь ваш участок:

ggplot(data = sample_data, aes(x = purchase_month, y = orders)) + 
  geom_line(aes(color = type), size = 1) +
  scale_color_manual(values = c("#00AFBB", "#E7B800")) +
  theme_minimal()

enter image description here

13
задан Jonas 29 December 2012 в 17:19
поделиться

4 ответа

Как/почему делают функциональные языки (конкретно Erlang) масштабируются хорошо? (для обсуждения почему)

http://erlang.org/course/course.html (для учебной цепочки)

До портирования на другие языки систему передачи сообщений было бы легко сделать на наиболее современных языках. Получение функционального стиля может быть сделано в Python достаточно легко, хотя Вы не получили бы внутренние функции диспетчеризации Erlang "бесплатно". Stackless Python может копировать большую часть функций параллелизма Erlang, хотя я не могу говорить с деталями, поскольку я не использовал ее очень. Если, действительно кажется, является намного более "явным" (в котором это требует, чтобы Вы определили параллелизм в коде в местах, что дизайн Erlang позволит параллелизму происходить внутренне).

13
ответ дан 1 December 2019 в 22:58
поделиться

Другой из функций erlang, которые оказывают влияние на масштабируемость, являются легкие дешевые процессы. Так как процессы имеют так мало служебного erlang, может породить намного больше из них, чем большинство других языков. Вы получаете больше удара для своего маркера с процессами erlang, чем много других языков дают Вам.

2
ответ дан 1 December 2019 в 22:58
поделиться

Erlang не только о масштабируемости, но и главным образом о

  • надежность
  • характеристики мягкого реального времени (включенный мягким реальным временем GC, который возможен, потому что неизменность [никакие циклы] и ничего не совместно использует и так),
  • производительность в параллельных задачах (дешевое переключение задач, дешевая икра процесса, модель агентов...)
  • масштабируемость - спорный в текущем состоянии, но быстро развивающийся (приблизительно 32 ядра хорошо, это лучше, чем большинство конкурентов, но должно быть лучше в ближайшем будущем).
4
ответ дан 1 December 2019 в 22:58
поделиться

Я думаю, что лучшим выбором для Erlang являются связанные приложения Сети - делает коммуникацию намного более простой между узлами, и вещи как контроль heartbeat, автоматический перезапуск с помощью супервизора встроен в OTP.

1
ответ дан 1 December 2019 в 22:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: