← All posts tagged C++

SannySanoff

В CLion мейк и gdb отладчик делают программу компиляться-запускаться 23 секунд до выполнения кода (1 c++ файл поменялся). Хочется открыть reddit и читать туда, покуда оно чухается.

в Qt Creator ninja и gdb отладчик делают это за 11 секунд. Можно только почесать бок и поковыряться в носу, и снова работа.

Я знаю, что есть места, где пишут гамезы например, или деплоят на борды, там с меня будут ржать, но у меня просто лапки, мне нужно править и запускать.

SannySanoff

Внезапно сообщаю, что грустная тема из псто #2944954 (как писать на плюсах под вендой если ты основательно сидишь на jetbrains IDE) имеет продолжение.

Clion + MS Compiler — нету отладчика
Во-первых в последней бете отладчик завезли, отлаживается через lldb, да вроде основные функции работают, всякие ушлые условные брекпойнты итп еще не допилили.

Во-вторых, нашел параллельный билд для CL (ms c++ compiler) (раньше не было), называется он jom, и притворяется nmake, и написан отчего-то на qt core, да пусть хоть на питоне.

Короче, проделал бенчмарки как конпелится мой проект, активный кусок который я пилю (36 compilation units, сильно не без templates), thirdparty и холодные куски не перекомпиляются, debug build:

28 sec = msvc 2019, jom instead of cmake, win
19.3 sec = cl /mp, visual studio 2019 (msbuild?), win
11.5 sec = zapcc(implements clang-7), linux
18.904 = clang8, linux
23.785 = gcc9, linux

такие дела. Говорят, clang умеет притворяться CL, осталось собрать zapcc под вендой и проверить его в этой роли.

почему мне не пофигу? потому что у меня жабовский склад ума, и я люблю когда оно быстро конпелит.

А вся эта байда с вендой потому что линукс не вышел у меня из слипа однажды недавно, скотино. В этой области конечно против гейбуков слова не скажешь.

SannySanoff

По результатам усилий, сообщаю, что перелезть на С++ девелопмент под венду с линукса не получилось. Причина венды вообще: предполагалось, что под вендой ноут лучше себя ведет (не оправдалось — разве шо хибернейт легче заенаблить) во время путешествий и переключений между видяхами (не оправдалось — если пользовал с 2 мониторами, то только ребут позволяет уйти в экономный режим, без дискретной видяхи).

Далее, достигнут следующий прогресс:

CLion + WSL — работает, но гуевые аппы гонять через X геморройно, т.к. плохая интеграция. Нету нормальных XServer чтобы интегрировался в виндовый window manager, а не фулскрин. X-Win32 — глючит на hi-dpi.

Clion + Mingw — линкует проект по 3 часа, не лечится

Clion + MS Compiler — нету отладчика

MS Visual Studio 2019 — иногда теряет шорткаты между запусками, некоторые невозможно пользовать в принципе (например Ctrl+F8) — достаточно отстойная IDE, чувствуется многолетний пофигизм на разработчиков, вынужденно конечно меняется, но без огонька.

MS Visual Studio 2017 — старый С++, и вроде как 2019 в остальном. Clang под ним — не пробовал.

VS Code — расширенный ноутпад, не нужна, но может когда-нибудь мы созреем друг для друга.

Всякие code-blocks итп — не пробовал, думаю, что 19 век.

Eclipse CDT — вгоняет в депрессию.

Объявляю, что сезон 2019-го года открытой души и сердца к современной Индусской версии Виндовз 10 за сим закрывается.

SannySanoff

Не векторизует гцц мои лупы, штук 5 разных, все не векторизует, пишет страшные логи.
Скачал интеловский конпелятор, ICC, тот тоже не векторизует, но логи пишет уже понятнее чуток, но все равно не могу понять почему нет.

for(int i=0; i<limit; i++, hs++,ls++,dda++) {
*dda=hm[*hs]*lo+((*ls)-slo);
}

вероятно просто не мой ворклоад? (avx512 enabled если шо). Ну и вероятно я просто не понимаю, ну и фиг с ним.

SannySanoff

На highloadcup 195 секунд, 13 место перед финальным разбором.
Я налажал где только мог, последующая оптимизация только замедляла все. Вопросов больше чем ответов. Более поздние версии тормознее чем более ранние. memcmp(4 bytes) дольше чем ((int)c) = 0x0A0D0A0D. Опция -O3 медленнее на 10% чем no optimizations.

НО! Непонятно, как у людей еще быстрей, архитектура вроде одинаковая. Читаем решения.

Программировали с @tilarids на гейбуках, там же меряли (!!) (для чего? все равно корелляции с офиц линукс-тестилкой по перфомансу не было). Учет версий вели с трудом. Тест корректности ответов я написал в предпоследний день, наполовину. До того только "пилил", "точить пилу" было некогда 8).

Жажда адреналина и дух соревновательности это всё. Ради него. Следует задуматься. Его-то я получил сполна, а первое место — нет 8)