- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
if (strcmp(request_name, REQUEST_1) == 0)
function_1();
else if (strcmp(request_name, REQUEST_2) == 0)
function_2();
else if (strcmp(request_name, REQUEST_3) == 0)
function_3();
/* И так далее */
else if (strcmp(request_name, REQUEST_N) == 0)
function_n();
http://ideone.com/lXDlZG
К тому же будет очень весело если придёт неизвестный request_name. Придётся всю остальную таблицу забивать указателями на void nop(){}
Табличка размером в 32 Гб (на 64-х битных архитектурах). Мсье знает толк.
Другое дело, что если пользователи будут присылать некорректные запросы, будут происходить промахи, и память будет выкушиваться, что ведет потенциально к DoS.
mmap() не нужен. malloc()ова память на линухе (и многих *нихах) тоже ленивая. и с высокой вероятностью malloc(32GB) либц сама догадается mmap()ом сделать.
> что ведет потенциально к DoS.
по моему опыту либо ОСь либо аппликуха повалится просто (oom killer). что как бы и есть недостаток ленивого выделения физической памяти: у какого `a = b;` возврат ENOMEM не предусмотрен.
Дык это и есть Denial of Service :)
Кстати, по опыту - перед падением всяко будет еще большой интервал с дикими тормозами... У меня проги, решившие сожрать много памяти, до OOM обычно не доживали. Я первым тыкал в reset, ибо ничего другого не оставалось.
Не обязательно. Когда выделяется память (в Solaris по крайней мере), она резервируется в т.н. Swap Space, составленном из дискового свопа и незанятой разными невыгружаемыми вещами оперативной памяти, что позволяет гарантировать, что данные можно будет хотя бы куда-нибудь положить (и поэтому не возникает ENOMEM).
Другое дело, что когда все 32 Гб начинают активно использоваться, разница в скорости обращения к диску и памяти начинает сказыватся. Кроме того, начинают включатся всякие механизмы троттлинга выделения страниц.
В нашем случае скорее всего все некорректные страницы памяти (не содержащие корректные jump_table[CRC32(request_name)]) скорее всего вытеснятся на диск, и DoS может и не случится :)
Так что все что нужно - это 32 Гб своп-файл.
И мне про троллинг страниц вконтакте расскажите.
Но нет, M$ как всегда запороло хорошую задумку - менюха для вызова диспетчера на отдельном столе, а сам диспетчер - на обычном. Из-за чего он почти бесполезен.
Ctrl+Shift+F1 c anvir, что бывает побыстрее
После того, как Хром сожрал все ресурсы, стала тормозить даже мышь. Нажал Ctrl+Shift+Esc — окно появилось минут через десять. Сначала боролся с процессами Хрома, как с головами Гидры, но в итоге всё свелось к...
Прям следствие закона Мура какое-то.
А там может и вправду пидарасы. Вот думаю даже не оскорбительно как-то получается.
Теоретически ты можешь запустить powershell и там Stop-Process, но это всё равно жутко томрозит, и вероятно там не джинтуный .net внутри
Правильное решение это как в никсах-иксах: CTRL+ALT+FN переносит тебя на виртуальную косноль с запущенным на ней виртуальным терминалом.
Написать там kill стоит в миллион раз меньше ресурсов, чем ебля с гуем и кнопочками
В линухе, на самом деле, еще хуже. В винде я обычно всё же умудрялся убить процесс. В линухе же почти всегда working set > physical memory = мучительная смерть. Даже при 8 гигах оперативы.
P.S. Кстати, вот то ли у меня руки такие кривые, то ли в ядре нет нормального планировщика i/o... Кучу манов и советов перечитал, но i/o лаги во время копирования больших файлов так и не удалось устранить.
Страйкер потом потрёт, и всё.
Вот "Посоны, я запилил бесконечный сток" надо вынести в отдельный тред и попросить Люра поставить ему +1000.
Нельзя просто так взять и узнать, что там что-то изменилось. Возможно, это одна из причин, по которой туда не пишут.
Я на цыпочках, как вор,
Пробираюсь, чуть дыша,
Чтобы не спугнуть
Тех, кто спит уже давно,
Тех, кому не всё равно,
В чью я комнату тайком
Желаю заглянуть,
Чтобы увидеть,
Как бессонница в час ночной
Меняет, нелюдимая, облик твой...
Что там нарушил 1024--?
А если ИСКЛЮЧЕНИЕ из правила?
text-decoration:underline; text-decoration:line-through;
Ну вы поняли.
Но с тех пор памяти у меня стало в 16 раз больше. А файл подкачки на SSD. И потревожит тут только большой х** на весь экран, а диспетчер задач открывается даже, если процессор полностью занят (не знаю, это заслуги новой винды или у процессоров теперь ещё есть ресурсы при формальной 100% загрузке).
1. Столкновение с известным значением параметра. Это можно предусмотреть ещё на этапе разработки, сделав ветвление для того значения хеша, которому соответствуют несколько допустимых значений параметра.
2. Столкновение с неизвестным значением. Если нужно отфильтровать и такие случаи, то с этим ничего не поделать, придётся на входе в каждую функцию проверять значение параметра на точное совпадение с ожидаемым.
В школе изучают паскаль, я сам про такое слышал
Не купайте в Неве ноги,
В ней разводятся миноги.
https://lenta.ru/articles/2019/11/12/dotsent/
Пока судят Соколова: двое петербуржцев за неделю расчленили возлюбленных
https://moika78.ru/news/2020-07-30/454284-poka-sudyat-sokolova-dvoe-peterburzhtsev-za-nedelyu-raschlenili-vozlyublennyh/
В Санкт-Петербурге мужчина убил и расчленил коллегу
https://lenta.ru/news/2020/10/13/spb/
В Санкт-Петербурге актер убил и расчленил транссексуала из Таджикистана
https://www.spb.kp.ru/daily/217185/4291787/
Кровавая драма в «положительной» молодой семье. Почему петербуржец расчленил супругу
https://360tv.ru/news/tekst/peterburzhets-raschlenil/
Пять пакетов: звезду «Версуса» расчленили в Петербурге
Расчлененный труп украинского рэпера Энди Картрайта обнаружили в Санкт-Петербурге. По информации СМИ, звезда «Версуса» скончался от передозировки, после чего его жена, не хотевшая «бесславной смерти» артиста, расчленила его тело, чтобы он «просто исчез».
https://www.gazeta.ru/culture/2020/07/30/a_13170157.shtml
Если разные - положить болт, пока профайлер не начнет кудахать.
> без шаблонов оно не то.
А главное без лямбд. Написать свои правда с gnu экстеншен можно
Так это извечный срач. Одни любят динамически типизируемые языки, другие - нет.
>А главное без лямбд.
Невелика потеря. Указатели на фукнцию.
Ведь это очень старый приём, например для сортировки возвращать указатель на функцию-компаратор.
Эм, принимать вы хотели сказать?
глиб - монструозный буст из гнома, в основном системные фичи (он под винду хоть работает?)
ах глисты вы мои глисты растянулись на пол версты
но круто.
Но мне кажется исключения и все остальные полезные фичи в крестах будут работать быстрее. Ибо тут препроцессор, а сколько говна он добавит одному бусту богу известно.
Ты это, поосторожнее. А то сегодня бугурт, а завтра создаёшь ещё один язык в дополнение к крестам, obj-C, Swift...
Хе-хе. Так в социальных сетях где нет разметки делают.
Тест скрипта.
>А⃤ я⃤ е⃤щ⃤ё⃤ т⃤а⃤к⃤ м⃤о⃤г⃤у⃤
Вот это у меня не показывает нормально.
Сделал мой вечер.Я думал об таком когда-то.
Кстати говорят недавно запустили Goatse Coin. Конардо на пути к мировому господству.
// Требует функции из комментария выше.
Да, и в носу не ковыряй - плохая примета ;)
http://news.yandex.ru/yandsearch?cl4url=ria.ru%2Fworld%2F20141019%2F1029037869.html