Vladislav
а что с ним делать, если выходишь за пределы фирмы? дефакто cmake стал основным средством описания проектов C++. а инкрементная сборка прекрасно обеспечивается всякими студиями и т.п.
С опенсорсом сложнее, но я в последнее время у многих проектов вижу базель как альтернативную систему сборки, а иногда и как основную
Sergey
Потому что переполнился инт, 1<<32 == 0, если не считать, что это UB
Sergey
Народ, подскажите плз. У меня есть мапа с 1млн объектов. Если я делаю рандомное обращение по хешам с интервалом от 0 до 1млн, то производителтность в два раза хуже, чем если интервал от 0 до 10000. Это происходит из-за промахов кэша, коллизии я исключил. Есть ли способ уменьшить промахи и как?
Крылатый
Юзай unordered_map
Ignat
очевидно, о ней и речь, раз упоминаются хеши
Nikita
Написать кэш-френдли хэш функцию?))
Anatoly
исключить коллизии на 1 млн элементов - это все равно что создать массив из 1 млн элементов, где индекс элемента использовать в качестве значения хеш-функции
Alexander "SonnySlave"
еще раз - ты разобрался что именно тормозит?
Alexander "SonnySlave"
посмотри валгриндом там или любым другим нормальным профайлером
Sergey
Да, но мапа все еще заполнена на 1 млн во втором случае
Sergey
посмотри валгриндом там или любым другим нормальным профайлером
А для динамической либы есть норм профайлеры?
Alexander "SonnySlave"
А для динамической либы есть норм профайлеры?
а какие ты пробовал что они не смогли отпрофалить длл?
Sergey
Я .so с помощью perf смотрел, но там не очень информативно
Alexander "SonnySlave"
валгринд в помощь
Alexander "SonnySlave"
ну а если ультимативно то vtune
Sergey
Ок, спасибо, буду пробовать
Alexander "SonnySlave"
без данных профайлинга сложно ванговать что там у тебя лагает
ttldtor
А мне норм. На новой работе мигрировали проект с симейка на базель и довольны как слоны
прошу прощения, а разве базель не требует дл ясборки 24 ядра минимум?
ttldtor
по-дефолту у гуглов так вроде бы
Vladislav
Как укажешь, столько и будет использовать. Я собираю всякие pet project'ы на ноутбуке без проблем им. Да и на рабочем сервере всего 16 ядер, кажется
Eugene
а чем так плох CMake?
ttldtor
ну мне казалось, что эта штука (bazel) для сборок чего-то, что требует "Scalable"
Ignat
синтаксисом конфигурации, он же блин просто отвратителен
ttldtor
ну если только не нравится декларативное описание
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
sbt тоже неплох
sbt хорош, но очень уж медленный
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
вроде нашёл этот баг 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_
Ну типа подгружать параллельно файлы и т.п
Ioann_
Хммм... тупо создать std thread и читать в нем ? Или какие то средства OS ?
Ioann_
В общем, ссылочку на почитать б
Ioann_
Ну, как минимум из интереса
Square
Видел я многопоточных читалок :/
Square
Ну, как минимум из интереса
Речь про разные Файлы ведь?