Kirill
А если есть строка, у которой capacity()==size() (после shrink_to_fit()), и она вставляется в unordered_set через перемещение, равенство в контейнере сохранится?
Dumitru
http://ideone.com/AcaiEU
Есть варианты? 😔
Dumitru
Все, я понял! Ппц глупая ошибка(
Kirill
делай после чтения строки shrink_to_fit
Сделал. Ничего не изменилось. Более того, отладчик показал, что результат вызова substr() имеет capacity()==size().
Square
Я конечно виндоус макака и там есть целая куча показателей
Square
И ориентироваться можно далеко не на все
Kirill
Я запустил программу, и в определенный момент она уже лезет в подкачку.
Square
Это может быть private set, requested и прочее
Kirill
При том, что свободно точно больше гигабайта ОЗУ
Square
И какой размер строки?
Kirill
30 млн строк, каждая по 17*2+1, но в таблицу я заношу только 17.
Square
Флаги какие? Дебаг/релиз там?
Kirill
О, об этом я не подумал
Square
Хэшкарта - размер ключа ещё
Square
Это
Square
Хэшкарта еба
Square
Обычный мап
Square
Возьми
Square
Хэш он же бакетами выделяет память
Square
Ты хоть ушринкайся
Kirill
Обычный set увеличит сложность
Square
Ну зато места меньше
Square
А зачем сет?
Kirill
Нужен быстрый поиск строки
Square
Короче я сказал своё мнение :)
Square
Я считаю что в релизе и обычный сет будет занимать столько, сколько ты ожидаешь
Square
Попробовать то никто не мешает
Churchill
короче ребят такая тема У нас ебнутая шарага И сайты есть белого списка И хренолиард в черном списке Нужно написать мессенджер чтобы работал по локалк Но тема такая что компы не имеют доступ друг к другу по локалке А все идет через центральный(учительский)комп Тот в свою очередь имеет доступ к сети только через сервер в главном корпусе шараги Нужно сделать мессенджер, ибо скучно)
🦥Alex Fails
Upnp
Andrey
А какие порты и протоколы разрешены?
Churchill
а вот я и хз В брандмауре же можно настроить любой порт?
Kirill
Я считаю что в релизе и обычный сет будет занимать столько, сколько ты ожидаешь
Собрал в релиз и заменил на set. Те же 3 ГБ, только дольше обрабатывается.
Churchill
но не факт потому что чтобы даже включить там сетевое обнаружение других компов нужно было вводить админ логин и пароль
Churchill
которых не знаю
Kirill
Сдается мне, дело не в контейнере.
Square
А строки как в контейнер суёшь?
Andrey
Ну и неплохо понять, как все-таки через учительский комп все в сеть ходят. Сомневаюсь, что стоит дцать сетевух
Square
http://pastebin.com/ZAsUJD6Y
Есть чем профильнуть?
Kirill
Есть чем профильнуть?
Никогда не профилировал память, только время.
Square
Я привык к qt - там все copy on write
Square
Никогда не профилировал память, только время.
Ну интелрвские инструменты хороши
Square
Под красноглазые ОСи есть вроде
Stanislav
поидее в гцц шной реализации строк cow
Square
поидее в гцц шной реализации строк cow
Ну я не вижу явного криминала :(
Square
Хз, стл вообще давно не юзал
Square
У меня уже профдеформация
Stanislav
Да ладно?
c гцц 3 еще
Stanislav
because libstdc++'s string is Copy-On-Write in GCC 3.
Stanislav
из доков
Kirill
Valgrind же нужно запускать с отладочной версией?
Stanislav
я вчера ж кстати кидал ссылку на видос про стринги от фейсбука на cppcon 2016
Square
Valgrind же нужно запускать с отладочной версией?
А ты не пробовал заранее резервировать память?
Square
Большими блоками?
Stanislav
https://www.youtube.com/watch?v=kPR8h4-qZdk
Square
Хотя если б была фрагментация то картина не такой была бы
Stanislav
там как раз расскаюзывают как до 5 версии строки работали
Kirill
А ты не пробовал заранее резервировать память?
Нет. Сейчас запустил профилирование памяти, посмотрим.
Stanislav
The Qt 5.6.2 patch release continues the quality and maturity focus of Qt 5.6, bringing close to 900 improvements on top of the already solid Qt 5.6.1 release.
Churchill
Ну и неплохо понять, как все-таки через учительский комп все в сеть ходят. Сомневаюсь, что стоит дцать сетевух
там короч у каждого есть логин и пароль Через него ты входишь на портал и в ос на компах
Churchill
а система там именно такая как я описал
Churchill
дерево такое
Kirill
Вообще весело. 😂 Я уменьшил размер файла в три раза, а программа все равно выжрала 3 ГБ ОЗУ.
Stanislav
где ты в while аппендишь line
Andrey
а система там именно такая как я описал
Топологию сети выясняй. В твоём описании мне не все понятно.
Stanislav
в лайн точно только строка онда попадает?
Stanislav
а не все содержимое файла?
Churchill
Топологию сети выясняй. В твоём описании мне не все понятно.
есть центральный сервер С него связь отдельно к каждому компу учительскому от учительского отдельные связи к нашим, учебным
Kirill
Да, ибо иначе алгоритм работал бы неверно.
Kirill
А результат верный.
Churchill
физические
Andrey
то есть на 10 компов учеников в учительском 10 сетевух? и нет свичей в сети?
Andrey
Вообще весело. 😂 Я уменьшил размер файла в три раза, а программа все равно выжрала 3 ГБ ОЗУ.
так а что в сете? где память хранится, какие размеры и т.п. В отладчике внутрь объекта лазил?