@ProCxx

Страница 631 из 2477
Surreal
02.03.2017
20:11:58
а он ловят фрагментацибю памяти?
Нет, только лики и доступ по несущ. адресу.

Еще есть санитайзер UB.

Alex Фэils?︙
02.03.2017
20:12:55
Google
Sergey
02.03.2017
20:23:31
как гуглить хотя бы

Surreal
02.03.2017
20:24:08
как гуглить хотя бы
https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html

Sergey
02.03.2017
20:24:34
а, gcc

в visual studio нет аналога?

Alex Фэils?︙
02.03.2017
20:24:59
в visual studio нет аналога?
Было вродь что-то

Surreal
02.03.2017
20:25:08
clang есть для студии.

В нем это есть.

Из него и пошло, вроде.

Stanislav
02.03.2017
20:26:41
https://visualgdb.com/

Surreal
02.03.2017
20:26:42
В нем это есть.
Хотя не уверен, что в виндовой версии есть все санитайзеры.

Andrei
02.03.2017
20:41:02
https://visualgdb.com/
Зачётная штука. Я с помощьюю неё embedded свой отлаживал коребельный.

Matway
02.03.2017
20:41:12
Или, например #ifdef DEBUG ... #endif
Только по стандарту наоборот: #ifndef NDEBUG ... А так да - редкий случай, когда за макро можно не расстреливать.

Google
Alex Фэils?︙
02.03.2017
20:45:47
Зачётная штука. Я с помощьюю неё embedded свой отлаживал коребельный.
Ща в мсвц 2015 есть линь-проекты. Вроде можно уже без этого мощного екста херачить

Хочу бота плвншетного дебажить в студии

Stanislav
02.03.2017
20:46:54
Stanislav
02.03.2017
20:47:51
НЕ ПРОЩЕ
почему?

Alex Фэils?︙
02.03.2017
20:47:52
Alex Фэils?︙
02.03.2017
20:48:13
Surreal
02.03.2017
20:48:52
Вроде б он. И гдб)
А гдб такой же, консольный?

Andrei
02.03.2017
20:48:57
Да и как мне он бы помог? У меня один фиг отлаживаемое приложение на плате. у которой из выводов только ethernet и питание :)

Alex Фэils?︙
02.03.2017
20:49:40
А гдб такой же, консольный?
Такой же, но студия его прозрачно юзает, поэтомк для юзера все выглядит как обычно - брякпойнты, step, stepi, и др

Pavel
02.03.2017
20:51:16
чат набирает обороты =). Матвей, привет =).

Kirill
02.03.2017
22:47:56
Я вот думаю, если сделать свой пул памяти для блоков любых размеров (как в книжках описывают), будет ли скорость выделения/освобождения памяти существенно больше? Ведь диспетчер памяти ОС делает примерно ту же работу, только блоков у него больше на порядок.

Будда
02.03.2017
22:50:43
Мне кажется здесь дело не в скорости, а в стабильности. Сделав так, вы просто будете уверенны, что другие процесы каким-то чудом будет мешать вашей программе. Ну, или наоборот, что ваша программа не наделает сбоев.

Kirill
02.03.2017
22:51:52
Разве ОС позволяет процессу влезать в чужое адресное пространство?

Kirill
02.03.2017
22:54:12
Он fixed-size

Google
Kirill
02.03.2017
22:54:52
Про fixed-size понятно: там логика выделения/освобождения совсем другая, потому быстрее на порядки.

Будда
02.03.2017
22:54:53
Разве ОС позволяет процессу влезать в чужое адресное пространство?
Я не уверен. Разве не бывает намеренных попыток использовать программу с целью забить всю память?

Kirill
02.03.2017
22:56:19
Но я имею в виду универсальный пул, который хранит линейные списки указателей на занятые свободные блоки и их размеры.

Будда
02.03.2017
22:57:04
Забивайте, вам никто не мешает.
Если это возможно намеренно, значит ли это, что возможно и после какого-то сбоя программы?

Kirill
02.03.2017
22:57:30
Я не уверен. Разве не бывает намеренных попыток использовать программу с целью забить всю память?
Ну, процесс может израсходовать всю свободную память, но это не значит, что он влезает в память других.

Surreal
02.03.2017
22:58:35
Если это возможно намеренно, значит ли это, что возможно и после какого-то сбоя программы?
Это просто возможно. Если хотите сожрать всю доступную память, то единственный ограничитель - адресное пространство и ulimit/аналог для win.

ovf
02.03.2017
22:59:15
на тему взаимодействия процессов в памяти рекомендую ознакомиться с развлекательными материалами типа https://arstechnica.com/security/2017/02/new-aslr-busting-javascript-is-about-to-make-drive-by-exploits-much-nastier/

но это просто последнее, а так -- см. "cache side channel attacks", "timing attacks" и т.д.

Kirill
02.03.2017
23:01:53
Даже, если можно залезть подобными способами в чужое адресное пространство, свой пул от этого никак не защитит.

Будда
02.03.2017
23:02:14
Спасибо за информацию)

ovf
02.03.2017
23:07:29
нет, не защитит. :-)

Surreal
02.03.2017
23:11:16
Раз уж такая тема пошла. Где-то читал, что в clang есть механизм "сокрытия" указателя на таблицу вирт. функций (могу ошибаться, но что-то подобное). Может кто-нибудь знаком и может в 2-3х предложениях описать принцип.

Kirill
02.03.2017
23:12:31
Сокрытие? Ну, он и так недоступен, если только не ориентироваться на конкретный компилятор и арифметику указателей.

Kirill
02.03.2017
23:13:37
Вроде как стандарт не определяет, где он будет храниться, (наиболее логично в начале или конце базового класса).

Surreal
02.03.2017
23:17:25
В фб в hhvm, кстати, делали свою "вирт. таблицу" для горячих классов. Там, правда, это двумерный массив указателей на функции.

Кому интересно, вот: https://clang.llvm.org/docs/ControlFlowIntegrity.html И гуглить: vtable protection

Kirill
02.03.2017
23:34:36
Нашел интересную библиотеку: http://www.pjsip.org/pjlib/docs/html/group__PJ__POOL__GROUP.htm

Vladislav
02.03.2017
23:36:33
стандартный malloc обычно не используют в high load, есть же jemalloc и tcmalloc

Google
Vladislav
02.03.2017
23:38:02
довольно мощная штука, если правильно ей пользоваться

Pepe
03.03.2017
04:54:53
Если я правильно понял

Anton
03.03.2017
04:56:05
Если я правильно понял
вроде как с освобождением аналогично.

Pepe
03.03.2017
04:56:14
Ну и когда ты аллоцируешь память для массива тоже надо несколько раз делать как это в STL реализовано я не знаю правда

Bormaley
03.03.2017
05:15:16
Обычно когда пишут свой аллокатор памяти исходят из того насколько часто выделяются те или иные блоки памяти. Как правило объекты небольших размеров размещаются в памяти чаще более крупных. Отсюда разный подход и алгоритмы. Блоки очень больших размеров думаю можно вообще организовать в виде линейного списка и не париться.

Admin
ERROR: S client not available

Vladislav
03.03.2017
05:17:28
Если мне не отшибает память, то скорость выделения памяти не зависит от размера аллоцируемого блока.
у регионов вся аллокация - прибавить к указателю на конец региона размер блока, а деаллокация вообще бесплатная (правда память при этом не осободится до конца жизни всего региона)

EvilSquirrel
03.03.2017
05:28:49
/vzhuh@FailsBot

Evgeniy
03.03.2017
06:13:44
/vzhuh@FailsBot

Denis
03.03.2017
07:30:37
Ну вот в книге Александреуского была глава, где он имплементил что-то похожее

Tema
03.03.2017
07:32:13
А что ты предложишь взамен? Как мне енам представить в строковом виде?
у меня есть класс который мапит енамы на строки, стоит тока обратиться к такому объекту с енамом или строкой он возвращает замапленое знечение, ну то есть там 2 мапы

Grigor
03.03.2017
08:05:15
в stingraykit есть такая штука

на гитхабе должно быть

https://github.com/GSGroup/stingraykit/blob/master/stingraykit/toolkit.h#L97

во

и вуаля, все enum имеют строковое представление)

Google
Vladislav
03.03.2017
08:07:57
https://github.com/GSGroup/stingraykit/blob/master/stingraykit/toolkit.h#L97
мда, отлично заменяет макросы)

Grigor
03.03.2017
08:08:36
а кто-то без макросов хотел?)

я просто не читал, так подхватил тему

struct SocketOptionLevel { STINGRAYKIT_ENUM_VALUES(Socket, InternetProtocolV4, InternetProtocolV6); STINGRAYKIT_DECLARE_ENUM_CLASS(SocketOptionLevel); };

Вот так это работает

Alex Фэils?︙
03.03.2017
08:16:30
а кто-то без макросов хотел?)
Ну вот на менябыли поклепы, что типа макросы. Но ща без них никуда

Grigor
03.03.2017
08:16:49
ну иногда макросы это же удобно и хорошо

Vladislav
03.03.2017
08:20:29
https://github.com/rollbear/basicpp

Alex Фэils?︙
03.03.2017
08:21:30
Grigor
03.03.2017
08:22:03
лооооол

Дед Пегас
03.03.2017
08:22:24
Igor
03.03.2017
08:22:44
https://github.com/rollbear/basicpp
крутая дичь)))

Orphey
03.03.2017
08:22:58
xD Qbasic

Tema
03.03.2017
08:41:17
выложи на пастбин
http://pastebin.com/WZnrrzQh

Alex Фэils?︙
03.03.2017
08:54:43
Tema
03.03.2017
08:55:37
Спасибо
я бы кста хотел какой нить кодревю по этому говнокоду, потому что посути оно мапит объекты на объекты, и енум в названии это косяк, и мапы там надо делать унордеред и мног оещё всего

Alex Фэils?︙
03.03.2017
08:57:59
Чуть позже гляну

Tema
03.03.2017
08:59:00
Alex Фэils?︙
03.03.2017
09:41:08
Схоронил в гист. Придраться трудно. Могу только если по дизайну класса - кмк, енамы должны быть иммутабельными, и методы для изменения внутренней мапы не нужны. И я б добавил перегрузки оператора скобки для типа T и строкового типа.

Страница 631 из 2477