Алдар
и память выделять вручную
Andrey
и память выделять вручную
ага и на диск кешировать )
Kirill
Дяденька Саттер учил не изобретать велосипеды, если есть реализация в стандартной библиотеке.
Andrey
:D
Kirill
😂
Kirill
Да я не жалуюсь
Kirill
Мне просто интересно
Andrey
Мне просто интересно
в сорцы лезь ) уверен найдешь там много инетерсного )
Andrey
и захочется писать велосипед потом, под частную задачу ) Если по памяти - критично )
Kirill
в сорцы лезь ) уверен найдешь там много инетерсного )
Главное - вовремя остановиться. Например, после 3 уровня вложенности заголовочных файлов. :D
Алдар
будет гордость за то что недоступно всяким джавистам питонистам и тем более джаваскриптерам
Andrey
с калькулятором в руке )
Алдар
фронтендер ж не программист
Andrey
фронтендер ж не программист
я ща фронтендом занимаюсь ) на js и немного бакэнда на плюсах )
Алдар
Алдар
а верстальщик вообще даже не человек!
Kirill
Andrey
js - весьма тонкая штука )
Алдар
но фронтенд это весело, ничего не скажешь
Andrey
:D
Алдар
бекенд на плюсах О_о
Kirill
А фронтендер задумывается о том, сколько разных размеров дисплея у смартфонов существует?
Kirill
Или это уже не для людей?
🦥Alex Fails
нормпльный да
Алдар
ну и фронтендер тоже
Алдар
🤗
бекенд тоже можно было на жс
Алдар
в 90% случаев)
Andrey
бекенд тоже можно было на жс
в моем случае - нет :D
Алдар
в моем случае - нет :D
почему? требуется особая производительность, или много математики?
Stanislav
такая архитектура )
легаси, а не архитектура)))
Kirill
Проверил unordered_set на unsigned long. Файл 382 МБ потребовал 2939 МБ ОЗУ. :D
Stanislav
а обычный set ?
Kirill
2289 МБ :D
Kirill
Чуть получше
Kirill
При том, что set заранее ничего не выделяет, т.е. память целиком используется.
Kirill
Размер больше в т.ч. из-за накладных расходов на каждый элемент. Для примитивных типов связный список дает накладные расходы на элемент больше, чем сам элемент занимает.
Kirill
То биш если хранить большое количество относительно больших объектов, то разница будет не такая большая
Kirill
Нужно проверить на каких-то объектах размером, скажем, 256 байт.
Kirill
Проверил std::unordered_set<std::array<char,256> > 442 МБ
Kirill
Вывод прост: чем меньше размер элемента, тем менее эффективны по памяти эти контейнеры.
Kirill
Нужно было сразу догадаться.
Kirill
Да не в этом дело
Kirill
Я изначально проверял на малых строках (17 байт). На 64 разрядной системе указатель занимает 8 байт. В том же map на каждый элемент нужно три указателя. В результате, накладные расходы больше размера элемента.
Kirill
А в хеш-таблице, допустим, вектор списков. Список, даже если в нем один элемент, хранит несколько указателей.
Andrey
а за память - скоростью
Andrey
самый главный закон разработки )
Square
У них и аллокатор толковый и в контейнеры его пихать можно стдшные
Stanislav
Попробуй интел прикрути все таки
компилятор? он жи платный)
Square
компилятор? он жи платный)
Можно бетку 2017 взять :)
Светомеч
То есть всегда.
Stanislav
хм, а если сделать отсортированный вектор, а рядом мапу положить в которую пихать std::hash и id из вектора? )
Stanislav
хотя можно и не сортировать
Stanislav
время обработки только возможно увеличится, но на потребление памяти я бы посмотрел
Kirill
Пока другим занят.
🦥Alex Fails
бекенд тоже можно было на жс
Только потом в дурку заберут😄😂
🦥Alex Fails
чето не похоже
Да это баян один древний
Dumitru
всем привет, есть небольшой вопрос по поводу наследования есть класс Base, у этого класа есть строка и метод которы её меняет есть класс Child, наследует Base. Child вызывает метод который меняет строку, но вывести её не получается (она пустая) я подозоеваю что у нас две копии этой строки, но немного запутался
Dumitru
http://ideone.com/AH41GI что может быть?
Artem
Метод get не виртуальный
Dumitru
о есть! я чет начал делать метод write виртуальным спасибо!
Dmitry
а можно ли как-то красивее сделать установку нескольких бит подряд? вметсто par_flags |= 1 << 2; par_flags |= 1 << 3; par_flags |= 1 << 4; и вместо par_flags |= 1 << 2; par_flags |= 1 << 4; через #define BITS_TO_SET 0x24 par_flags |= BITS_TO_SET; ?
ovf
а в чём вопрос? тебе сказать значения для BITS_TO_SET?
Dmitry
в красоте
ovf
ответ: par_flags|=0x14 вполне красиво
🦥Alex Fails
enum flags { flag_1 = 0x1, flag_2 = 0x2, flag_3 = 0x4 }; uint32_t flags = flag_1 | flag_3;
Dmitry
посмотрел как сделано в драйвере и сделал по подобию. (это я первый патч в апстрим готовлю)
🦥Alex Fails
Как там?
Dmitry
ну в драйвере ядра. такие битовые константы через define определены