
olologin
16.10.2018
19:24:19
до этого всегда ловил подобное валгриндом, но сейчас в валгринде результат стабильно хороший
будто мы не выполняем плохих веток кода когда запускаемся в валгринде
я же в теории должен увидеть какие строки кода стали выполняться чаще/реже в сравнении двух запусков

Google

olologin
16.10.2018
19:25:34
от этого уже буду копать
если получится
проблема собственно в этом триангуляторе
но там кода очень много, и не моего, поэтому вот так приходится

Ilia
16.10.2018
19:27:15

olologin
16.10.2018
19:27:32
А в чём проблема?

Ilia
16.10.2018
19:28:04

olologin
16.10.2018
19:28:23
трешак всё-таки из-за релиза с дебагинфо
так что надо в полном дебаге это делать
или оптимизации повырубать
только-что проверил

Ilia
16.10.2018
19:29:41
А в чём проблема?
Сравнивать два запуска можно только если у тебя 100% повторяемость последовательности выполнения кода в программе.
Если есть недетерминированность какая-то -- уже фиг.
Так что надо это дело использовать для поиска узкого места , устранять, и искать следующее.

olologin
16.10.2018
19:29:59
какое дело?

Google

Ilia
16.10.2018
19:30:06

Anatoly
16.10.2018
19:30:11

Ilia
16.10.2018
19:30:50

Anatoly
16.10.2018
19:31:42

Ilia
16.10.2018
19:32:08
Да тут ещё пойми что дебаг, а что релез.
У него там линух...

olologin
16.10.2018
19:32:52

Ilia
16.10.2018
19:32:58
какое дело?
Короче ты можешь собрать Release, но с включённым Debug Info (это не страшно, это только символы видны) и с выключенной оптимизацией.

olologin
16.10.2018
19:33:10
А количество выполнений каждой строки

Ilia
16.10.2018
19:33:18

olologin
16.10.2018
19:33:37
А на винде не так разве?
Я просто не уверен, но кажется в дебаг билде проблема тоже не воспроизводится

Ilia
16.10.2018
19:34:41

olologin
16.10.2018
19:34:45
ладно, это уже мои проблемы

Anatoly
16.10.2018
19:35:23

olologin
16.10.2018
19:35:50
и собственно в дебагинфе

Ilia
16.10.2018
19:35:56
А на винде не так разве?
В MSVC есть отладочная библиотека и отладочный режим кодогенерации со всякими гардами и ловушками. Это дело в принципе не предназначено чтобы работать. Оно служит как действующая модель приложения .

olologin
16.10.2018
19:36:36
так переменные обнуляются в дебаге и в gcc и в msvc?

Google

olologin
16.10.2018
19:36:51
не задавался раньше такими вопросами

Ilia
16.10.2018
19:37:54
Но GCC вроде такого не делает по умолчанию.

olologin
16.10.2018
19:40:29
http://prntscr.com/l6ts6f
Это так, на память
только с valgrind'ом

Alexen
16.10.2018
19:50:32

Anatoly
16.10.2018
19:51:35

Alexen
16.10.2018
19:51:53
да, причём ещё какое

Anatoly
16.10.2018
19:52:48

Igor
16.10.2018
19:53:19

Alexen
16.10.2018
19:55:55

Anatoly
16.10.2018
19:56:18

Ilia
16.10.2018
19:57:11

Alexen
16.10.2018
20:00:11
Ага
и без знаний индекса последнего элемента?

Anatoly
16.10.2018
20:01:10

Egor
16.10.2018
20:01:36
?
int a[] = {};
int p;
sz = &p - a;

Simon
16.10.2018
20:02:18

Anatoly
16.10.2018
20:02:23

Google

Simon
16.10.2018
20:02:47
Поинтеры на разные объедки памяти

Alexen
16.10.2018
20:09:20
@anatolijs у меня мозг выдал только из последних стандартов решение, я уже отвык от старого стиля магии: https://godbolt.org/z/8-Nq6X

Simon
16.10.2018
20:13:56

Александр
16.10.2018
20:14:29

Alexen
16.10.2018
20:15:06
так std::size(a) это и есть по сути sizeof

Александр
16.10.2018
20:15:28
так в ТЗ как раз int a[] = { some compile-time seq }

Alexen
16.10.2018
20:16:02
там выше было написано что без шаблонов и прочего

Simon
16.10.2018
20:16:03

Alexen
16.10.2018
20:17:18

Александр
16.10.2018
20:18:07

Alexen
16.10.2018
20:18:25
в диалоге после закреплённого сообщения
ааа, понял прикол
https://godbolt.org/z/k_qhbT
но за такое надо руки отрубать от задницы

Anatoly
16.10.2018
20:25:52

Alexen
16.10.2018
20:27:12
это такой же этюд как и a[0] вместо *a, где *a указатель не на массив
ну нафиг короче

Anatoly
16.10.2018
20:29:45
Странная реакция

olologin
16.10.2018
20:29:49
ну и тулкит vc120 соответственно

Google

Alexen
16.10.2018
20:30:01
понабрались от кернел -девов говна и теперь хвастаются

olologin
16.10.2018
20:30:07
или какой там стандартный

Stanislav
16.10.2018
20:30:50
VS13
везет, у меня на одном проекте VS2012 сложно с С++17 переключатся

Alexen
16.10.2018
20:30:54

Anatoly
16.10.2018
20:31:43

Alexen
16.10.2018
20:32:22
мб

olologin
16.10.2018
20:35:29
Короче нестабильность при -O0 не воспроизводится
а при -O3 есть
С каждым днём все интереснее в чём же проблема

Alexen
16.10.2018
20:36:12
-O2 надо юзать
-O3 это для совсем отчаянных

olologin
16.10.2018
20:36:34
А не
подожди

Alexander
16.10.2018
20:36:38
о, снова свидетели О3 опасносте

olologin
16.10.2018
20:36:41
там -O2 и было
Я ошибся
При -O2 нестабильность тоже есть
Ща попробую -O1 может

Alexander
16.10.2018
20:37:28
может у вас там UB где-то :)
я бы просто попробовал без оптимизаций