
Firstname
19.09.2018
18:29:23
7 8 9 подвеситься к 5 справа

Max
19.09.2018
18:34:13

Firstname
19.09.2018
18:37:14
Да, согласен там косяк все же
причем такой, нихуевый

Google

Pavel
19.09.2018
18:38:40
привет всем
кто-нибудь собирал LLVM + clang с конкретным бэком?

Anton
19.09.2018
18:41:17

Pavel
19.09.2018
18:41:35
gcc8 орет на каждый memcpy
что то типа writing to an object ".." with no trivial copy-assignment
гуглю я видимо неправильно, но ничего не нашел

Anton
19.09.2018
18:43:39
я видимо не правильно понял, что значит "с конкретным бэком"
думал просто нужную версию llvm собрать надо

Pavel
19.09.2018
18:44:01
Мне надо только ARC архитектуру
и Clang

Chiveson
19.09.2018
18:45:11

Pavel
19.09.2018
18:45:45
Я убираю из CMakeLists лишнее, но билдится все равно с варнингами + qtcreator орет под весь код в Target/ARC - непонятные Semantic issues

Max
19.09.2018
18:46:30
причем такой, нихуевый
Наверное, можно формировать пачки не фиксированно по сотне, а в зависимости от current, parent, left и right.

Firstname
19.09.2018
18:47:20

Pavel
19.09.2018
18:55:21

Google

Pavel
19.09.2018
19:01:26
но уже не 40к, а 200 штук))

Anton
19.09.2018
19:02:01
варнинги - это же норм ) ошибок нет?

Pavel
19.09.2018
19:02:13
неа
А кто-то писал свои архитектуры? Шарит как инструкции дописывать?

Max
19.09.2018
19:05:48

Firstname
19.09.2018
19:18:16

Andrew
19.09.2018
19:52:39

Max
19.09.2018
20:09:50

Andrew
19.09.2018
20:10:36
Ну там в первой функции бы просто inc бы исчез, нет? На 1 инструкцию короче получается.

Max
19.09.2018
20:20:11

Andrew
19.09.2018
20:42:03
Потому что он меняет eax, который используется только для возвращаемого значения. Если возвращать a++ вместо ++a, то и значение менять не нужно?
Там одной командой делается "a++ по смыслу", а потом инкрементом догоняется +1 на возвращаемом значении.

Anton
19.09.2018
20:46:15
если вы там пишете return a++; то видимо да, компилятор может догадаться что инкремент делать не нужно )
по ссылке просто return ++a; было вроде
кстати циклы вида for (int i=0; i<N; ++i) иногда хуже оптимизируются чем for (int i=0; i<N; i++), т.к. оптимизатор ожидает увидеть скорее последнее

Ioann V
19.09.2018
20:49:26

Anton
19.09.2018
20:49:42
к сожалению нету, давно это ковырял, несколько лет назад
уже может быть не актуально

Ioann V
19.09.2018
20:50:16
я думаю, оно неактуально года так с 2к10ого

Anton
19.09.2018
20:50:31
смотря для какого компилятора
в msvc совсем недавно за оптимизатор взялись

Google

Anton
19.09.2018
20:50:57
в gcc давно всё неплохо

Max
19.09.2018
20:51:11
Выглядит сомнительно. Инкремент инт -- он и есть инкремент. Его в цикле не надо оптимизировать. А вот постикремент - надо

Ioann V
19.09.2018
20:51:12
но это не значит, что в такой простой кейс msvc2010 не может

Anton
19.09.2018
20:51:14
в clang как-то очень активно всё меняют, разные версии оптимизируют сильно по-разному

Egor
19.09.2018
20:51:50

Anton
19.09.2018
20:52:01

Ioann V
19.09.2018
20:52:24

Anton
19.09.2018
20:52:25
там внутри цикла были ещё другие инкременты - может это как-то влияло

Max
19.09.2018
20:52:27

Anton
19.09.2018
20:52:30
может в кэше дело было

Ioann V
19.09.2018
20:52:35
надо минимумы брать. как КК завещал.

Anton
19.09.2018
20:52:53
посмотрите какие мы крутые
а почему среднее нехорошо?

Alex Фэils?︙
19.09.2018
20:54:01

Andrew
19.09.2018
20:55:54

Anton
19.09.2018
20:56:45
а ну да
не локальная же

Alex Фэils?︙
19.09.2018
20:57:13
"Как известно, Java не тормозит. Но мы всё равно решили переписать одну программу с Java на C++ и заодно проверили в деле наш асинхронный сервер. Во время доклада мы по шагам создадим небольшое приложение и задумаемся о вещах, которых не хватает в C++ и современных операционных системах. Плюс немного расскажем о нагрузке на нашу систему."
ОРУ блядь

Google

Andrew
19.09.2018
20:57:32

Anton
19.09.2018
20:58:39

Alex Фэils?︙
19.09.2018
20:59:28
современные ОС - тот еще кал. но это #holywar и OCHE толстый #наброс
Заранее извените

Ioann V
19.09.2018
20:59:50

Anton
19.09.2018
21:00:24
и случаться это может редко, не при каждом запуске
процы же больно умные сейчас

Ioann V
19.09.2018
21:01:05
ну так значит остальные тесты показывают не те значения.

Anton
19.09.2018
21:01:32
ну вот когда сравниваешь два варианта чего-нибудь
для одного из них минимум может быть лучше просто потому, что процессор был холоднее например
на среднее обычно не влияет
вернее влияет слабо
на медиану может вообще не влиять

Ioann V
19.09.2018
21:03:32
Ну и замеришь ты совсем не то, что должно следовать ожиданиям на данном железе. Ты еще поверх запусти что то сложное для проца.
Брать минимум - общеизвестная практика.

Anton
19.09.2018
21:04:31
ну в общем тогда надо чтобы условия для запуска максимально одинаковые были
типа большой idle период между запусками вариантов
и прочее, чтобы ничего не влияло

Andrew
19.09.2018
21:07:51
Просто минимум намного сильнее подвержен выбросам, в отличие от медианы. В случаях каких-то микрозамеров это может оказать влияние.
На вскидку, можно замерить 2-3 минимальных значения и посмотреть, насколько они отличаются.

Ioann V
19.09.2018
21:08:16

Google

Andrew
19.09.2018
21:09:19
Вообще непонятно, зачем минимум именно на практике. Тебе чаще всего важна производительность на весь процесс, обработать там 100к запросов, бессмысленно учитывать минимальное время обработки запроса.

Anton
19.09.2018
21:09:40
у него ж вагон книжек

Andrew
19.09.2018
21:10:20
Вот есть у тебя цифра -- "выполнение 1 запроса". Если это среднее/медиана, то умножив ее на количество запросов, ты получишь их время выполнения, с достаточной точностью, причем можно даже доверительный интервал построить.
А с минимумом ты что будешь делать? Получать нижнюю границу? "Запросы выполнятся не быстрее, чем за 1 час"? Это ж вообще не нужно.

Evgeniy
19.09.2018
21:30:02
если у тебя детерменистичный код то в среднем значении ноль смысла

Andrew
19.09.2018
21:31:06
Я про то, что если грамотно поставить тест, типо без обновлений и всего такого, то уже становится разумнее брать среднее, потому что это то, что тебе потом понадобится.

Evgeniy
19.09.2018
21:33:23
ты не в 80ых)

Andrew
19.09.2018
21:33:37
Наоборот, именно в среднем есть смысл, это же статистика.

Evgeniy
19.09.2018
21:34:37

Andrew
19.09.2018
21:34:48
Я понимаю, что для замеров АvsБ разумно брать минимум, если запуски абсолютно независимы друг от друга (с учетом переаллокаций и кешей это мне кажется маловероятным), но в целом минимум для практики выглядит ущербной статистикой, от нее почти нет толку.
Ну сравни, что ты можешь сказать на основе каждого из следующих утверждений:
1. Процесс работает не быстрее, чем 1с
2. Процесс работает в среднем за 7 секунд
3. Процесс работает в худшем случае до 20 секунд.
Из 2 и 3 я могу получить полезную информацию про работу сервиса; из 1 я могу понять в лучшем случае, сколько я гарантировано могу пить кофе, поставив пачку задач выполняться.
Лучший случай на практике наименее интересен.