@ProCxx

Страница 331 из 2477
Dumitru
13.10.2016
15:40:29
А если просто V{"a"}; ?
Тогда будет вектор из одного элемента, по идеи

http://pastebin.com/6hqjvAVQ

http://pastebin.com/cksLiP0r

gcc, C++14

Google
Stanislav
13.10.2016
15:46:46
давай на ideone.com компилируемый вариант

Kirill
13.10.2016
15:51:47
Господа, у меня при чтении строк из файла размером 1,2 ГБ в unordered_set выжирается 3 ГБ ОЗУ, хотя из файла на самом деле берется только половина информации, т.е. 600 МБ. Есть идеи? http://pastebin.com/CCv8GR98

Kirill
13.10.2016
15:55:11
В htop смотрел

Stanislav
13.10.2016
15:55:54
и на какую колонку ориентировался? )

Kirill
13.10.2016
15:56:08
RES

Kirill
13.10.2016
15:59:25
Нет, заранее неизвестно количество строк.

Stanislav
13.10.2016
15:59:55
делай после чтения строки shrink_to_fit

по умолчанию капасити в 2 раза больше реальной длины

Dumitru
13.10.2016
16:00:17
Kirill
13.10.2016
16:03:09
делай после чтения строки shrink_to_fit
А при копировании std::string у нового объекта size()==capacity()?

Kirill
13.10.2016
16:04:29
нет конечно

Google
Kirill
13.10.2016
16:05:41
size это сколько у тебя конкретно в строке, capacity это сколько у тебя в куче места до ближайшего обьекта

и при конструкторе копирования выделяется аллокатор

*вызывается

иногда до ближайшего align

это к тому что если в куче следом что то стоит, у тебя выравнивание стоит 4 байта, а длина строки 9, то капасити будет 12

Kirill
13.10.2016
16:09:54
А если есть строка, у которой capacity()==size() (после shrink_to_fit()), и она вставляется в unordered_set через перемещение, равенство в контейнере сохранится?

Dumitru
13.10.2016
16:10:13
http://ideone.com/AcaiEU
Есть варианты? ?

Все, я понял! Ппц глупая ошибка(

Kirill
13.10.2016
16:28:42
делай после чтения строки shrink_to_fit
Сделал. Ничего не изменилось. Более того, отладчик показал, что результат вызова substr() имеет capacity()==size().

Square
13.10.2016
16:29:48
Я конечно виндоус макака и там есть целая куча показателей

И ориентироваться можно далеко не на все

Kirill
13.10.2016
16:31:02
Я запустил программу, и в определенный момент она уже лезет в подкачку.

Square
13.10.2016
16:31:08
Это может быть private set, requested и прочее

Kirill
13.10.2016
16:31:19
При том, что свободно точно больше гигабайта ОЗУ

Square
13.10.2016
16:31:29
И какой размер строки?

Kirill
13.10.2016
16:32:13
30 млн строк, каждая по 17*2+1, но в таблицу я заношу только 17.

Square
13.10.2016
16:32:22
Флаги какие? Дебаг/релиз там?

Kirill
13.10.2016
16:32:43
О, об этом я не подумал

Google
Square
13.10.2016
16:33:29
Хэшкарта - размер ключа ещё

Это

Хэшкарта еба

Обычный мап

Возьми

Хэш он же бакетами выделяет память

Ты хоть ушринкайся

Kirill
13.10.2016
16:34:55
Обычный set увеличит сложность

Square
13.10.2016
16:35:48
Ну зато места меньше

А зачем сет?

Kirill
13.10.2016
16:36:30
Нужен быстрый поиск строки

Square
13.10.2016
16:36:56
Короче я сказал своё мнение :)

Square
13.10.2016
16:37:33
Я считаю что в релизе и обычный сет будет занимать столько, сколько ты ожидаешь

Попробовать то никто не мешает

IT_Enot
13.10.2016
16:40:39
короче ребят такая тема У нас ебнутая шарага И сайты есть белого списка И хренолиард в черном списке Нужно написать мессенджер чтобы работал по локалк Но тема такая что компы не имеют доступ друг к другу по локалке А все идет через центральный(учительский)комп Тот в свою очередь имеет доступ к сети только через сервер в главном корпусе шараги Нужно сделать мессенджер, ибо скучно)

Alex Фэils?︙
13.10.2016
16:44:44
Upnp

Stuw (Андрей)
13.10.2016
16:46:02
А какие порты и протоколы разрешены?

IT_Enot
13.10.2016
16:46:31
а вот я и хз В брандмауре же можно настроить любой порт?

Kirill
13.10.2016
16:46:47
Я считаю что в релизе и обычный сет будет занимать столько, сколько ты ожидаешь
Собрал в релиз и заменил на set. Те же 3 ГБ, только дольше обрабатывается.

IT_Enot
13.10.2016
16:47:00
но не факт потому что чтобы даже включить там сетевое обнаружение других компов нужно было вводить админ логин и пароль

Google
IT_Enot
13.10.2016
16:47:04
которых не знаю

Kirill
13.10.2016
16:47:06
Сдается мне, дело не в контейнере.

Square
13.10.2016
16:48:38
А строки как в контейнер суёшь?

Kirill
13.10.2016
16:49:59
IT_Enot
13.10.2016
16:52:38
Stuw (Андрей)
13.10.2016
16:54:22
Ну и неплохо понять, как все-таки через учительский комп все в сеть ходят. Сомневаюсь, что стоит дцать сетевух

Square
13.10.2016
16:56:40
http://pastebin.com/ZAsUJD6Y
Есть чем профильнуть?

Kirill
13.10.2016
16:57:09
Есть чем профильнуть?
Никогда не профилировал память, только время.

Square
13.10.2016
16:57:19
Я привык к qt - там все copy on write

Admin
ERROR: S client not available

Square
13.10.2016
16:57:48
Никогда не профилировал память, только время.
Ну интелрвские инструменты хороши

Под красноглазые ОСи есть вроде

Stanislav
13.10.2016
16:58:10
поидее в гцц шной реализации строк cow

Square
13.10.2016
16:58:39
поидее в гцц шной реализации строк cow
Ну я не вижу явного криминала :(

Хз, стл вообще давно не юзал

Square
13.10.2016
16:59:12
У меня уже профдеформация

Stanislav
13.10.2016
16:59:58
Да ладно?
c гцц 3 еще

because libstdc++'s string is Copy-On-Write in GCC 3.

из доков

Google
Kirill
13.10.2016
17:01:55
Valgrind же нужно запускать с отладочной версией?

Stanislav
13.10.2016
17:03:51
я вчера ж кстати кидал ссылку на видос про стринги от фейсбука на cppcon 2016

Square
13.10.2016
17:04:00
Valgrind же нужно запускать с отладочной версией?
А ты не пробовал заранее резервировать память?

Большими блоками?

Stanislav
13.10.2016
17:04:29
https://www.youtube.com/watch?v=kPR8h4-qZdk

Square
13.10.2016
17:04:33
Хотя если б была фрагментация то картина не такой была бы

Stanislav
13.10.2016
17:04:49
там как раз расскаюзывают как до 5 версии строки работали

Kirill
13.10.2016
17:05:29
А ты не пробовал заранее резервировать память?
Нет. Сейчас запустил профилирование памяти, посмотрим.

Stanislav
13.10.2016
17:09:57
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.

IT_Enot
13.10.2016
17:18:15
Ну и неплохо понять, как все-таки через учительский комп все в сеть ходят. Сомневаюсь, что стоит дцать сетевух
там короч у каждого есть логин и пароль Через него ты входишь на портал и в ос на компах

а система там именно такая как я описал

дерево такое

Kirill
13.10.2016
17:22:20
Вообще весело. ? Я уменьшил размер файла в три раза, а программа все равно выжрала 3 ГБ ОЗУ.

Stanislav
13.10.2016
17:22:32
Stanislav
13.10.2016
17:22:44
где ты в while аппендишь line

Stuw (Андрей)
13.10.2016
17:22:48
а система там именно такая как я описал
Топологию сети выясняй. В твоём описании мне не все понятно.

Stanislav
13.10.2016
17:22:55
в лайн точно только строка онда попадает?

а не все содержимое файла?

IT_Enot
13.10.2016
17:23:35
Топологию сети выясняй. В твоём описании мне не все понятно.
есть центральный сервер С него связь отдельно к каждому компу учительскому от учительского отдельные связи к нашим, учебным

Kirill
13.10.2016
17:23:36
Да, ибо иначе алгоритм работал бы неверно.

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