Vladislav
Sergey
Потому что переполнился инт, 1<<32 == 0, если не считать, что это UB
Vladislav
Максим
Sergey
Народ, подскажите плз. У меня есть мапа с 1млн объектов. Если я делаю рандомное обращение по хешам с интервалом от 0 до 1млн, то производителтность в два раза хуже, чем если интервал от 0 до 10000. Это происходит из-за промахов кэша, коллизии я исключил. Есть ли способ уменьшить промахи и как?
Крылатый
Юзай unordered_map
Ignat
очевидно, о ней и речь, раз упоминаются хеши
Alexander "SonnySlave"
Nikita
Написать кэш-френдли хэш функцию?))
Anatoly
Anatoly
исключить коллизии на 1 млн элементов - это все равно что создать массив из 1 млн элементов, где индекс элемента использовать в качестве значения хеш-функции
Anton
Sergey
Alexander "SonnySlave"
еще раз - ты разобрался что именно тормозит?
Alexander "SonnySlave"
посмотри валгриндом там или любым другим нормальным профайлером
Vladimir
Sergey
Да, но мапа все еще заполнена на 1 млн во втором случае
Sergey
Sergey
Я .so с помощью perf смотрел, но там не очень информативно
Alexander "SonnySlave"
валгринд в помощь
Alexander "SonnySlave"
ну а если ультимативно то vtune
Sergey
Ок, спасибо, буду пробовать
Alexander "SonnySlave"
без данных профайлинга сложно ванговать что там у тебя лагает
ttldtor
Vladislav
ttldtor
по-дефолту у гуглов так вроде бы
Vladislav
Как укажешь, столько и будет использовать. Я собираю всякие pet project'ы на ноутбуке без проблем им. Да и на рабочем сервере всего 16 ядер, кажется
Eugene
а чем так плох CMake?
ttldtor
ну мне казалось, что эта штука (bazel) для сборок чего-то, что требует "Scalable"
ttldtor
Ignat
синтаксисом конфигурации, он же блин просто отвратителен
ttldtor
ну если только не нравится декларативное описание
Vladislav
Vladislav
И производительностью
Ignat
я с детства за декларативность
Ignat
на хачкеле пишу
ttldtor
если он отвратителен, то почему premake не взлетел?
Ignat
и cabal/stack, надо сказать, сильно приятнее!
ttldtor
только EA его и юзает, наверное
Egor
премейк у близзарда тоже
ttldtor
есть другие забавные варианты: gradle, sbt =)
ttldtor
gradle юзают в Unity
Ignat
sbt тоже неплох
ttldtor
только медленный
Vitaliy ◀️TriΔng3l▶️
а через Visual Studio или Xcode собирать deprecated, что ли?
ttldtor
сорь, у меня кроссплатформа
ttldtor
но могу в любой момент сгенерировать cmake-ом солюшен
ttldtor
так, мы ещё забыли про qbs =)
ttldtor
его ведь тоже кто-то юзает
Vladislav
Nikita
ребята
Nikita
!std::is_trivially_copy_constructible<std::vector<std::unique_ptr<int>>>::value;эта фигня должна компилироваться и давать true, так ведь?
Nikita
fixed
Nikita
просто clang (по крайней мере 6) спокойно компилит это, а gcc (7.3) валится при компиляции с ошибкой
Nikita
и я вот понять не могу, это фича clang'а или баг gcc
Nikita
Nikita
Nikita
почему?
Nikita
отрицание же стоит
Nikita
вроде нашёл этот баг https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80654
Nikita
видимо фикс не добрался до gcc 7
Nikita
Aidar
struct a{
a(*operator+)(a);
};
int main(){};
Aidar
Warnings:
/LIBPATH:C:\boost_1_60_0\stage\lib
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x64
Aidar
Почему он это компилит лол
Ioann_
Ребят, а многопоточно можно ли читать файлы ? Ну, так чтобы вот прям параллельно ?
Nikita
а другие компиляторы?
Nikita
Почему он это компилит лол
Alexander
Ioann_
Ну типа подгружать параллельно файлы и т.п
Nikita
Ioann_
Хммм... тупо создать std thread и читать в нем ? Или какие то средства OS ?
Ioann_
В общем, ссылочку на почитать б
Square
Ioann_
Ну, как минимум из интереса
Square
Видел я многопоточных читалок :/
Ioann_