170 похожих чатов

Привет всем. Подскажите как поступить. Есть бот. Я получаю сообщение от

пользователя, и в зависимости от сообщения с помощью абстрактной фабрики конструирую класс, который будет что-то делать.
Насколько я знаю, обращение к ОС и получение указателя на объект в куче занимает определенное время и если на каждое сообщение создавать объект в куче, то будет достаточно затратно.
Есть ли какой нибудь более эффективный способ ?

12 ответов

11 просмотров

можно возвращать std::variant из возможных обработчиков, тогда аллокации не будет. (Только еще подушню, что аллокации обычно без участия ядра ОС проходят)

Ну вообще от кода твоего зависит. Можно в функции получения сообщения выяснять какой обработчик нужен и просто соответствующую функцию вызывать

Ok-ㅤ Автор вопроса
Mikail Bagishov
можно возвращать std::variant из возможных обработ...

аллокация в куче действительно затратная операция, или она мало отличается от создания объекта на стеке ?

Ok ㅤ
аллокация в куче действительно затратная операция,...

нет, не затратная. если ваше понимание сопутствующих процессов находится на уровне "обращение к ОС", то вам противопоказано воспринимать аллокации как затратные и вообще делать что-либо кроме как писать код максимально ясным и понятным способом

Ok-ㅤ Автор вопроса
Ok ㅤ
хочется еще и эффективным образом

Сколько раз в секунду будет вызываться функцию, которую ты пишешь?

Это не тот случай когда тебе надо думать о таких вещах

Ok-ㅤ Автор вопроса
Ilya Zviagin
Это не тот случай когда тебе надо думать о таких в...

Это не тот случай когда надо это отвечать

Ok ㅤ
аллокация в куче действительно затратная операция,...

Аллокация в куче не сильно затратная операция

Ilya Zviagin
Аллокация в куче не сильно затратная операция

Кому-то и O(N^3) неплохая оценка сложности алгоритма

Ilya Zviagin
Аллокация в куче не сильно затратная операция

там основная затыка в блкоировке , в случае многопотока . Решается переходом на mimalloc

Mikail Bagishov
можно возвращать std::variant из возможных обработ...

мелкие да а крупные часто делаются через mmap. в Глибц предел две страницы аллокатора т.е. 128кб

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

Обсуждают сегодня

коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
средствами IBX как-то можно выполнить запрос insert ... returning?
Igor
31
объясните, я прада не понимаю. зачем в перле нужен аниивент? кому он пригодился в действительно нагруженных проектах?
nerv
30
Никто случаем не знает, как по-хорошему делается дозапись текста в edit на винапи?
The Bird of Hermes
25
Составить программу для подсчета числа нулевых символов с использованием команд управления циклом loop. Мы проходили TASM, если вдруг нужно будет. Если никто не хочет помогать...
Гарри Поттер
10
А какие у этого try практические плюсы перед eval?
Oleg Volkov
41
Hi there everyone Is there anyone who have not started hamster bot yet? I need only one, I'll be glad if you do this for me DM if you haven't yet
Mehrshad
53
Hi, I installed mysql 8 like this: wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.11-1_all.deb sudo dpkg -i mysql-apt-config_0.8.11-1_all.deb sudo apt-get install mysq...
Liran
1
Ребзя, а кто-нибудь делал на сайте Турбо Страницы Яндекса? Какую-то пользу они дают или нет? Приносят ли трафик?
Андрей [aharito] Харитонов
20
А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Карта сайта