//АйТи интерн
Веселые и полезные истории из жизни давно уже не интерна. Также истории моих друзей и коллег. Совпадения с реальными людьми и событиями, конечно же, случайны. Связаться с нами - @fedor_ch
Show more- Subscribers
- Post coverage
- ER - engagement ratio
Data loading in progress...
Data loading in progress...
O(N^2
) на O(N*logN)
, что дало ускорение в 12 раз. Как это удалось сделать? Пришлось сделать модель менее точной за счет добавления предположений и упрощения исходной задачи, чтобы использовать дерево поиска. Еще он оптимизировал сам алгоритм, обрабатывая некоторые краевые случаи отдельно.
Вишенкой стало переписывание на ассемблер одной функции, время выполнение которой занимало 98% от времени работы программы, а также покупка более производительного оборудования и изменение разрядности чисел с 64 бит на 32 бита.
В книжке эти данные собрали в таблицу, из которой станет понятно, что правильный алгоритм и подходящая структура данных дали бОльшую часть выигрыша производительности. Но ему пришлось делать свою модель менее точной, но зато работающей не года, а всего лишь 1 день.
Это еще один урок, и он не только про алгоритмы и структуры данных, но и про то, что разработка программного обеспечения это всегда компромиссы ("trade-off", его чаще используют в сленге) и программные системы - это не сферический конь в вакууме, а что-то работающее в реальном мире.
Получается, что алгоритмы все же нужны?
@it_intern
#алгоритмы #книгиQuorum. В прошлый раз мы говорили о проблеме Split-brain’а. Она происходит, когда распределенная система разделяется на несколько частей. Ее можно решить с помощью Quorum и Fencing. ”Quorum praesentia sufficit - установленное законом, уставом организации или регламентом число участников собрания (заседания), достаточное для признания данного собрания правомочным принимать решения по вопросам его повестки дня.” Это определение не из информатики, но верно передающее суть происходящего в распределенных системах (удивительно!). Кворум - это минимальное количество голосов от узлов системы для фиксации выполнения какого-нибудь действия в распределенной системе, требующего согласования. Обычно это запись данных внутрь системы или обновление состояние самой системы. Кворумы - это часть более глобальной проблемы, решение которой обеспечивает согласованность данных в распределенных системах. Эта проблема - консенсуса. Алгоритм консенсуса — это процесс, используемый для достижения согласия по одному значению данных…
Quorum. В прошлый раз мы говорили о проблеме Split-brain’а. Она происходит, когда распределенная система разделяется на несколько частей. Ее можно решить с помощью Quorum и Fencing. ”Quorum praesentia sufficit - установленное законом, уставом организации или регламентом число участников собрания (заседания), достаточное для признания данного собрания правомочным принимать решения по вопросам его повестки дня.” Это определение не из информатики, но верно передающее суть происходящего в распределенных системах (удивительно!). Кворум - это минимальное количество голосов от узлов системы для фиксации выполнения какого-нибудь действия в распределенной системе, требующего согласования. Обычно это запись данных внутрь системы или обновление состояние самой системы. Кворумы - это часть более глобальной проблемы, решение которой обеспечивает согласованность данных в распределенных системах. Эта проблема - консенсуса. Алгоритм консенсуса — это процесс, используемый для достижения согласия по одному значению данных…
Your current plan allows analytics for only 5 channels. To get more, please choose a different plan.