@ProCxx

Страница 2423 из 2477
Anatoly
10.10.2018
19:38:36
Окей, грубо говорить, что к потоку
по сути, система вызывает указанный программистом коллбек вне контекста какого-либо потока процесса

Max
10.10.2018
19:45:12
по сути, система вызывает указанный программистом коллбек вне контекста какого-либо потока процесса
для линукса это не совсем так: 'A signal may be generated (and thus pending) for a process as a whole (e.g., when sent using kill(2)) or for a specific thread (e.g., certain signals, such as SIGSEGV and SIGFPE, generated as a con‐ sequence of executing a specific machine-language instruction are thread directed, as are signals targeted at a specific thread using pthread_kill(3)). A process-directed signal may be delivered to any one of the threads that does not currently have the signal blocked. If more than one of the threads has the signal unblocked, then the kernel chooses an arbitrary thread to which to deliver the signal.' (c) man 7 signal. Хотя в чистом posix (man 2 signal) это вообще 'The effects of signal() in a multithreaded process are unspecified.'

Google
Max
10.10.2018
20:05:19
Многопоточность же в каком-то там стандарте посикс описана, не?
многопоточность-то да, pthreads — стандарт для unix-like, в общем-то. А вот с сигналами - хз.

Alexey
10.10.2018
20:06:15
Насколько я помню из прокуренного - потоки могут собственные правила обработки сигналов задавать

И приходят сигналы именно в потоки как единицы планирования выполнения

Max
10.10.2018
20:12:35
Насколько я помню из прокуренного - потоки могут собственные правила обработки сигналов задавать
могут, да. Но там это относится к pthread_kill, а не к kill. Вопрос в том, как именно ядро посылает сигнал.

Впрочем, в последнем "The Open Group Base Specifications Issue 7, 2018 edition" строки про "The effects of signal() in a multithreaded process are unspecified." уже нет. Хотя и всё равно не могу найти где она specified )

http://pubs.opengroup.org/onlinepubs/9699919799/

В предыдущем, "The Open Group Base Specifications Issue 6" она ещё есть )

http://pubs.opengroup.org/onlinepubs/009695399/functions/signal.html

Ilia
11.10.2018
04:43:25
Тогда такой вопрос: результаты на Intel64 и Amd64 коррелируют? Если на первом прирост скорости, то на втором тоже?

Google
Ilia
11.10.2018
04:58:59
понятно, что инструкции будут одни и теже, но то как будут справляться процессоры надо уже мерять. с определенностью можно сказать одно, что если у тебя, к примеру, был алгоритм с квадратичной сложностью, а ты заменил его на алгоритм с линейной прирост определенно будет.

Kitsu
11.10.2018
05:00:56
Там немного отличается спекулятивное выполнение, но думаю будет нетривиально получить такую пару сниппентов кода, на которых у одного будет повышение, а у другого - замедление скорости работы.

Если это не самоцель, то различия можно свести на погрешность

Alexen
11.10.2018
05:57:10
Есть набор последовательностей которые могут на одной архитектуре выстрелить, их даже специально искать не нужно: обычный read-modify-write, можно легко попасть на такой порядок даже не задумываясь. Из типичного примера берутся рекомендации из гайда по оптимизации для одного процессора и они будут наверняка более неправильными с точки зрения производительности для другого

Если это не самоцель, то различия можно свести на погрешность
Итого при компиляции ядра линукс в один поток на амд медленней чем на интеле, причём хорошо так медленней. А при многопоточной компиляции медленней у интела.

Zhenya
11.10.2018
07:41:21
Кто-то начинал курс на Coursera от яндекса?

Simon
11.10.2018
07:41:53
Кто-то начинал. Спрашивай конкретнее

Zhenya
11.10.2018
07:43:55
Интересует фин. помощь от Coursera, предоставляют на этот курс?

A.D.
11.10.2018
07:45:10
Agrailag
11.10.2018
07:46:11
Александр
11.10.2018
08:44:08
никто не пробовал делать что-то подобное на вариадиках? template <class... Ts> struct foo { virtual void method(Ts) = 0; // здесь где-то должно быть многоточие }; // чтобы для Ts = int, float, bool получилось struct foo { virtual void method(int) = 0; virtual void method(float) = 0; virtual void method(bool) = 0; };

Александр
11.10.2018
08:54:58
Spoonson
11.10.2018
09:29:14
только using Ts::method...; придется юзать, а он только с с++17

ну или рекурсивно наследовать

Александр
11.10.2018
10:08:26
только using Ts::method...; придется юзать, а он только с с++17
у меня в задаче именно наличие виртуальных методов, которые обязаны быть переопределены в наследнике, так что всё ок: https://godbolt.org/z/yH2yGJ

Antony
11.10.2018
12:47:37
Не знаю видели ли вы это предложение: http://wg21.link/P0989 Можно будет писать long long long int :)

Kathu
11.10.2018
12:48:44
тогда смысл пропадает от long long, он же с расширением разрядности тоже увеличивается

Google
Alexander
11.10.2018
12:49:03
как это сделано в wide_int

Дед Пегас
11.10.2018
12:49:29
+

Stanislav
11.10.2018
12:51:22
мне не нравится. Лучше явно указывать кол-во бит\байт
We also propose allowing the use of diacritics (on the o) for long and short. ie: lōng int x; == long long int x; shōrt int x; == long short int x; löng int x; == short long int x; о боже

Sergey
11.10.2018
12:52:08
short long int j; // (1 + 1/0.5)(32) = 48 bits

:)

Alexander
11.10.2018
12:52:21
ну ладно, посмеялись и хватит :)

Agrailag
11.10.2018
12:52:52
Stanislav
11.10.2018
12:53:09
так вроде не 1 апреля
Document number: P0989R0 Date: 2018-04-01 а таки первое)

Alex Фэils?︙
11.10.2018
12:54:15
Александр
11.10.2018
12:54:19
самое смешное из предложения (помимо диакритики): C++17 { int b12 : 12; int b5 : 5; } C++20 { long short short int b12; short long short short short int b5; }

Aleksei
11.10.2018
12:55:24
Как-то не удобно

A.D.
11.10.2018
12:58:51
я уж испугался, что на волне diversity щас появятся куча пропозалов, которым нельзя будет отказать

A.D.
11.10.2018
13:00:50
а это идея...
сменишь предпочтения ради пропозала?

Alexander
11.10.2018
13:01:00
Буду Александрой Зайцевой. Благо волосы уже отрастил. В комитете Беларусь представлять буду

Google
Anatoly
11.10.2018
13:02:43
всё во славу С++
как во славу C++ Сашей сразу назовусь

Alex Фэils?︙
11.10.2018
13:21:46
Не знаю видели ли вы это предложение: http://wg21.link/P0989 Можно будет писать long long long int :)
хе-хе, теперь следующая ошибка в GCC будет type long long long long int is to long

Ilia
11.10.2018
13:23:06
Евгений
11.10.2018
13:23:19
предлагаю по количеству букв l в слове long, дабы запись была короче

lllllllong

Alex Фэils?︙
11.10.2018
13:24:03
тяжело читается...

я б за wide_int голоснул бы :)

Aidar
11.10.2018
13:24:27
wide_int жеж

Евгений
11.10.2018
13:24:27
long 4 раза тоже неайс)

Дед Пегас
11.10.2018
13:24:34
В бан всех, что ли.

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