🐙 Antony
Vsevolod
хотя смотрю, вот, есть ext/pb_ds/cc_hash_table
Vsevolod
closed hashing == open addressing
🐙 Antony
open addressing быстрее, но стандарту не удовлетвояет. В open addressing другая инвалидация итераторов + не получится извлекать ноды из контейнера не меняя адресс хранимого объекта (полезная фишка С++17)
Vsevolod
я об этом и написал выше
Vsevolod
но скорость хеш таблиц зачастую бывает критическим моментом
Vsevolod
https://github.com/vstakhov/jahash - я когда-то давно писал для сишки, а потом бросил, потому что тлен
Alexander "SonnySlave"
Vsevolod
в моих задачах встречаю такое постоянно
Vsevolod
а вот iterators validity для unordered container даже не смотрел ни разу, ну и извлекать ноды из контейнера приходилось исчезающе редко (разве что для non-volatile коньтейнеров, но там совсем другая история)
Pavel
https://godbolt.org/g/VodqEt
Pavel
или уже было?
Крылатый
Чо за TAILCALL?
Vsevolod
lfence
Крылатый
А
Vsevolod
типа для сброса спекулятивного исполнения always false бранча?
Berkus
TAILCALL это хвостовая рекурсия
Berkus
вместо
call func
ret
оно делает
jmp func
Berkus
чтобы стек не засирать, шланг умеет такую оптимизацию
Vsevolod
tailcall - это понятно
Vsevolod
оно тут при чем вообще?
Berkus
Чо за TAILCALL?
Berkus
ты вопрос читал?
Vsevolod
без retpoline он все равно так делает
Berkus
я на него отвечаю
Vsevolod
я про retpoline
Berkus
я про вопрос на который я отвечаю
Vsevolod
pause
lfence
jmp .LBB1_1
Vsevolod
https://stackoverflow.com/questions/48089426/what-is-a-retpoline-and-how-does-it-work - ага, как обычно это уже было в Симпс^W^Wна stackoverflow
Vsevolod
lfence, кстати, не останавливает speculative prefetch
Vsevolod
но, видимо, speculative pipelining останавливает
Vsevolod
ага, об этом написано в update в этом ответе
Berkus
> infinite loop that is never executed
хех
Крылатый
> Naturally, protecting an indirect branch means that no prediction can occur.
КЛасс...
Vsevolod
хм
Vsevolod
а вот я взял туда и добавил try ... catch
Vsevolod
и возврат из catch retpoline не стал обрабатываться
Vsevolod
https://godbolt.org/g/C9rNBG
Vsevolod
это вообще законно?
Oleg
Привет.
Я хочу написать что-то вроде
std::for_each (container.begin (), container.end (), []( auto &n ){
…;
});
И мне очень лень явно указывать тип элеметов в container. Правда, что это позволят шаблонные лямбды, которые планируются в c++20?
Egor
Alexander "SonnySlave"
Oleg
Egor
Vsevolod
тут же недавно постили про => для такого
Oleg
Vsevolod
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0573r2.html
Oleg
Народ
Oleg
безопасно ли подключаться к приложению strace'ом?
Oleg
Отчасти. Все системные вызовы будут работать в несколько раз дольше (не знаю, во сколько именно), больше эффектов не должно быть.
Oleg
ок. Спасиюл
Andrii
Есть вот такая шаблонная функция
template<unsigned a, unsigned b>
bool foo() {
...
}
Как сделать её частичную специализацию, где второй параметр равен еденице? На такой вариант компилятор ругается
template<unsigned a>
bool foo<a,1) {
...
}
Пишет
non-class, non-variable partial specialization ‘foo<a, 1>’ is not allowed
Anonymous
Всё, как ты и понял, частичная специализация функций запрещена.
Anonymous
Заверни реализацию в структуру со статическим call, при особом желании — определи функцию, которая вызывает этот call.
Andrii
Всмысле сделать эти функции методами какой-то структуры?
Anonymous
🦥Alex Fails
Oleg
Чтобы не перемешивалось, скажем, с перегрузкой функций по параметрам?
Oleg
Народ, нужно помощь по профилированию.
Приложение под линукс. Консоль-онли. Чем профильнуть, чтобы понять в каком методе больше всего зависает и почему?
Vsevolod
perf
Alexander "SonnySlave"
Anonymous
Но потом задумался, ибо не использовал другие инструменты (калгринд оказался самым простым).
Anonymous
Вдруг что-то лучше есть.
Vsevolod
callgrind сам зависает, бгг
Oleg
вот пробую перфом но он как-то хреново показывает. Саму функцию вообще не показывает, которая, как я знаю, самая тяжелая.
Vsevolod
-g
Vsevolod
если у тебя omit-frame-pointer или инлайнинг, то может и не очень релевантное показывать
Vsevolod
я обычно ассемблер смотрю
Alexander "SonnySlave"
Anonymous
Anonymous
Какие вообще есть хорошие профайлеры для линя? Мне бы вот, чтобы понимал потоки.
Vsevolod
vtune :)
Anonymous
> commercial application
Ех, я школьник с крайне мелким заработком(
Anonymous
From $899. Тяжко.
Alexander "SonnySlave"