Size: a a a

2020 March 05

CD

Constantine Drozdov in pro.cxx
Jel Perzik
ребят можете сделать одну задачу? Хочу сравнить свой код с вашим.
код на пейстбин, задачу в студию
источник

JP

Jel Perzik in pro.cxx
Вычислить сумму четных или кратных 5-ти чисел. Ограничения: сумма не больше 1000
источник

CD

Constantine Drozdov in pro.cxx
Jel Perzik
Вычислить сумму четных или кратных 5-ти чисел. Ограничения: сумма не больше 1000
ну и в @supapro
источник

VO

Vyacheslav Olkhovchenkov in pro.cxx
так 998 чем не подходит?
источник

ИI

И Ivan in pro.cxx
Mikhail
Всем привет! Столкнулся со следующей проблемой. У меня есть сервер, который принимает запросы, протокол не важен. Тест кейс такой:
1. Формирую большой запрос, для которого у сервиса хватит памяти чтобы обработать, получаю валидный результат.
2. Формирую большой запрос, для которого у сервиса точно не хватит памяти, чтобы обработать - получаю bad allocation
3. Снова формирую такой же запрос, как и на первом шаге - получаю bad allocation
4. Формирую большой запрос, но меньше чем в первом шаге - получаю валидный ответ.
5. До перезапуска сервиса, все запросы, такого же размера, как в первом шаге возвращают bad allocation.

В связи с этим, несколько вопросов:
1. Возможно ли такое поведение из-за выделения памяти ОС? После bad allocation что-то случается с фрагментацией памяти, и я не могу уже выделять такие большие области как прежде?
2. Поведение замечено на WIndows. Есть ли какие то особенности для этой ОС с хэндлом bad allocation исключения?

Спасибо за внимание!
Еще бывает, что аллокаторы памяти этим грешат. У меня такое было с tcmalloc. Он держит кэш памяти под каждый тред, и в результате если какой-то тред выделил и удалил какой-то объем памяти, то tcmalloc его в систему обратно не вернет
источник

ИI

И Ivan in pro.cxx
Можно принудительно заставить его почистить память, но это уже какаято ява получится :)
источник

M

Mikhail in pro.cxx
И Ivan
Еще бывает, что аллокаторы памяти этим грешат. У меня такое было с tcmalloc. Он держит кэш памяти под каждый тред, и в результате если какой-то тред выделил и удалил какой-то объем памяти, то tcmalloc его в систему обратно не вернет
В систему память возвращается 100%
источник

M

Mikhail in pro.cxx
Отдельно это смотрел
источник
2020 March 06

IZ

Ilia Zviagin in pro.cxx
Mikhail
Всем привет! Столкнулся со следующей проблемой. У меня есть сервер, который принимает запросы, протокол не важен. Тест кейс такой:
1. Формирую большой запрос, для которого у сервиса хватит памяти чтобы обработать, получаю валидный результат.
2. Формирую большой запрос, для которого у сервиса точно не хватит памяти, чтобы обработать - получаю bad allocation
3. Снова формирую такой же запрос, как и на первом шаге - получаю bad allocation
4. Формирую большой запрос, но меньше чем в первом шаге - получаю валидный ответ.
5. До перезапуска сервиса, все запросы, такого же размера, как в первом шаге возвращают bad allocation.

В связи с этим, несколько вопросов:
1. Возможно ли такое поведение из-за выделения памяти ОС? После bad allocation что-то случается с фрагментацией памяти, и я не могу уже выделять такие большие области как прежде?
2. Поведение замечено на WIndows. Есть ли какие то особенности для этой ОС с хэндлом bad allocation исключения?

Спасибо за внимание!
Михаил, я тебе должен сказать одно:
Телепатия - великое искусство, но мы им не обладаем.
источник

M

Mikhail in pro.cxx
Ilia Zviagin
Михаил, я тебе должен сказать одно:
Телепатия - великое искусство, но мы им не обладаем.
Так я в общем описал же проблему
источник

YH

Yuri Hudobin in pro.cxx
Mikhail
Всем привет! Столкнулся со следующей проблемой. У меня есть сервер, который принимает запросы, протокол не важен. Тест кейс такой:
1. Формирую большой запрос, для которого у сервиса хватит памяти чтобы обработать, получаю валидный результат.
2. Формирую большой запрос, для которого у сервиса точно не хватит памяти, чтобы обработать - получаю bad allocation
3. Снова формирую такой же запрос, как и на первом шаге - получаю bad allocation
4. Формирую большой запрос, но меньше чем в первом шаге - получаю валидный ответ.
5. До перезапуска сервиса, все запросы, такого же размера, как в первом шаге возвращают bad allocation.

В связи с этим, несколько вопросов:
1. Возможно ли такое поведение из-за выделения памяти ОС? После bad allocation что-то случается с фрагментацией памяти, и я не могу уже выделять такие большие области как прежде?
2. Поведение замечено на WIndows. Есть ли какие то особенности для этой ОС с хэндлом bad allocation исключения?

Спасибо за внимание!
источник

MV

Mikhail Voronov in pro.cxx
Mikhail
Всем привет! Столкнулся со следующей проблемой. У меня есть сервер, который принимает запросы, протокол не важен. Тест кейс такой:
1. Формирую большой запрос, для которого у сервиса хватит памяти чтобы обработать, получаю валидный результат.
2. Формирую большой запрос, для которого у сервиса точно не хватит памяти, чтобы обработать - получаю bad allocation
3. Снова формирую такой же запрос, как и на первом шаге - получаю bad allocation
4. Формирую большой запрос, но меньше чем в первом шаге - получаю валидный ответ.
5. До перезапуска сервиса, все запросы, такого же размера, как в первом шаге возвращают bad allocation.

В связи с этим, несколько вопросов:
1. Возможно ли такое поведение из-за выделения памяти ОС? После bad allocation что-то случается с фрагментацией памяти, и я не могу уже выделять такие большие области как прежде?
2. Поведение замечено на WIndows. Есть ли какие то особенности для этой ОС с хэндлом bad allocation исключения?

Спасибо за внимание!
А какой аллокатор?
источник

M

Mikhail in pro.cxx
Mikhail Voronov
А какой аллокатор?
Mimalloc
источник

MV

Mikhail Voronov in pro.cxx
Mikhail
Mimalloc
Вот про него мало знаю, а если попробовать перейти на обычный системный?
источник

M

Mikhail in pro.cxx
Mikhail Voronov
Вот про него мало знаю, а если попробовать перейти на обычный системный?
Да, надо попробовать
источник

M

Mikhail in pro.cxx
Мне было интересно в чем в принципе может быть проблема
источник

MV

Mikhail Voronov in pro.cxx
В обычном системном просто  VirtualAlloc на большие запросы вызывается
источник

MV

Mikhail Voronov in pro.cxx
Mikhail
Мне было интересно в чем в принципе может быть проблема
Код бы посмотреть...
источник

PK

Pavel Kazakov in pro.cxx
обозначает входной параметр для функции, ничего шпионского не делает: это макрос, который разворачивается в ничто
источник

BB

Bohdan Bessonov in pro.cxx
не обязательно
источник