@ProCxx

Страница 358 из 2477
Rafael
27.10.2016
08:56:23
каким оьразом?
У меня на первом курсе была как траьла с ним, но я не понмю почему :с

Alex Фэils?︙
27.10.2016
08:57:06
http://www.viva64.com/ru/t/0044/

У меня на первом курсе была как траьла с ним, но я не понмю почему :с
А с uint32 будут проблемы с другим overflow – не знаковый, а целочисленный

На 64 битах, к примеру

Google
Square
27.10.2016
09:17:06
Не помню откуда - нашёл у в открытых вкладках занятное чтиво

http://www.gamedev.net/page/resources/_/technical/general-programming/game-engine-containers-handle-map-r4495

TheRainwildsKeeper
27.10.2016
15:20:38
Rafael
27.10.2016
15:31:40
что посоветуете для логирования и почему?

Дед Пегас
27.10.2016
15:36:04
Зависит от того, где юзаться будет

Я б предложил https://github.com/Iyengar111/NanoLog

Rafael
27.10.2016
15:36:40
Дед Пегас
27.10.2016
15:37:09
Но однако https://github.com/Iyengar111/NanoLog/issues/4

Хм, ишуй закрыли. Стал чуть быстре spdlog

Rafael
27.10.2016
15:50:31
что про это скажите? https://github.com/KjellKod/g3log

мне тут посоветовали glog юзать из-за ок доков

пиплы, если я пишу либу, то как мне glog прикрутить?

Google
Дед Пегас
27.10.2016
17:04:13
А не лущ для либы внешний логгер?

Rafael
27.10.2016
17:04:30
Дед Пегас
27.10.2016
17:05:13
Ну вот захочу я заюзать твою либу, а у меня другой логгер. Чо делать?

Rafael
27.10.2016
17:06:39
Ну вот захочу я заюзать твою либу, а у меня другой логгер. Чо делать?
хмм, логично, думаешь внутри либы юзать exceptions?

юзать исключения это верный подход или есть другие варианты?

Alex Фэils?︙
27.10.2016
17:52:23
Реткоды

ака "коды возврата"

Artem
27.10.2016
18:09:09
Реткоды это хорошо

И -fno-exceptions

Rafael
27.10.2016
18:10:26
и что лучше реткоды или исключения? что и почему

Artem
27.10.2016
18:15:08
Можно и так и так, но не нужно смешивать в рамках одной библиотеки

Эксепшены точно не нужно использовать для стандартных ситуаций

Artem
27.10.2016
18:17:02
Потому что они работают долго

TheRainwildsKeeper
27.10.2016
18:17:33
А с этого момента можно поподробнее?

Artem
27.10.2016
18:18:34
Они должны использоваться только для ошибок, а не для обычных ситуаций

Artem
27.10.2016
18:20:12
что значит "обычные ситуации"?
Непопадание в кеш, отсутствие искомого элемента в списке,...

Rafael
27.10.2016
18:20:57
вот например у меня есть парсер, где я передаю числа допустим я использую для хранения переменню int64t что мне делать если пришло число более чем max_uint64t?

Google
Alex Фэils?︙
27.10.2016
18:21:27
строка на входе?

Artem
27.10.2016
18:22:09
Наверное, это не самая частая ситуация? Тогда можно эксепшн

Rafael
27.10.2016
18:22:16
TheRainwildsKeeper
27.10.2016
18:22:45
throw дороже if
Это-то ясно. Но не едиными же условиями всё обрабатывать

Rafael
27.10.2016
18:23:04
вот пример: http://redis.io/topics/protocol

Artem
27.10.2016
18:23:10
То есть, это ведь именно ошибка, а не стандартная ситуация

Vladislav
27.10.2016
18:25:51
Если ты эмбедщик, то можно и едиными
Если ты эмбедщик, возможно c++ - не лучший выбор

Artem
27.10.2016
18:26:13
Кроме того, код с исключениями хуже поддаётся анализу

Alex Фэils?︙
27.10.2016
18:26:24
Artem
27.10.2016
18:26:54
Что может быть критично для особенно важных подсистем

Alexey
27.10.2016
18:27:18
Embedded тоже разные бывает.

Rafael
27.10.2016
18:28:00
Что может быть критично для особенно важных подсистем
эээ, наоборот же, в случае исключений код более явно показывает, какую ошибку он перехватывает

даже коменты не особото и нужны в таком случае (кончено это зависит от ситуации)

Vladislav
27.10.2016
18:29:02
эээ, наоборот же, в случае исключений код более явно показывает, какую ошибку он перехватывает
в коде не видно, какие функции что могут кинуть, что осложняет анализ

Artem
27.10.2016
18:29:45
Я пишу анализ

Исключения - это сложно :)

У тебя граф потока управления разрастается очень сильно, если обработка ошибок построена на исключениях

Потому что они могут где-то ловиться, где-то пробрасываться, они бывают разных типов и приезжают из разных мест

Rafael
27.10.2016
18:33:03
и как тогда реткоды спасают в этом случае?

Google
Artem
27.10.2016
18:33:08
Точно смоделировать такое очень дорого по ресурсам и почти всегда не необходимо

Поэтому точность теряется

Реткоды обрабатываются сразу

И явно

Они не ездят из функции в функцию и не ловятся скопом

Kirill
27.10.2016
18:35:32
throw дороже if
Зато пока нет throw, никаких накладных расходов. А при использовании кодов после каждой функции ветвление.

Вот и считайте

Rafael
27.10.2016
18:36:28
и, насколько я знаю, на некоторых платформах if дорогое удовольствие, типо армов например

Rafael
27.10.2016
18:41:31
люблю конструктивные разговоры?? спасибо господа

Admin
ERROR: S client not available

Эдуард
27.10.2016
18:44:49
Если ты эмбедщик, возможно c++ - не лучший выбор
Не, все норм с цпп в эмбеде, это точно.

и, насколько я знаю, на некоторых платформах if дорогое удовольствие, типо армов например
Какие именно? На Cortex-M не дорого вроде как, вполне нормально.

Rafael
27.10.2016
18:46:05
Какие именно? На Cortex-M не дорого вроде как, вполне нормально.
я года 2 назад про это читал, поэтмоу к сожалению сейчас уже не помню где это было

но вроде на армах

Эдуард
27.10.2016
18:46:34
Окей, но если попадешь - скинь, пожалуйста)

Интересно почитать

Kirill
27.10.2016
18:46:53
Я видел компилятор для процессора, в котором все целые два байта, даже char.

Timur
27.10.2016
18:47:50
Народ, сколько времени у вас выволняется следующая программка по вычислению числа ПИ? Есть большая разница, если компилировать на GNU GCC и на Visual C++ с результатами 9 и 20 секунд соответственно #include <iostream> #include <ctime> using namespace std; int main() { const clock_t begin_time = clock(); double pi = 0.0; bool boolean = false; double i; for(i = 1.0; i < 10000000000.0; i = i+2.0) { if(boolean){ pi = pi - 1.0/i; boolean = false; } else { pi = pi + 1.0/i; boolean = true; } } cout.precision(9); cout << pi*4 << endl; cout.precision(4); cout << float( clock () - begin_time ) / CLOCKS_PER_SEC; return 0; }

Эдуард
27.10.2016
18:48:10
За исключения - исключительные ситуации, тогда ничего такого. Заодно можно удобно инфу собрать. В остальном возвращаемого значения хватит, только стоит сделать так, чтобы не было кэш-промахов

Google
Vladislav
27.10.2016
18:51:53
~ $ g++-6 -O3 -o pi pi.cpp && time ./pi 3.14159265 19.97./pi 19.88s user 0.09s system 97% cpu 20.399 total ~ $ clang++ -O3 -o pi pi.cpp && time ./pi 3.14159265 20.12./pi 20.03s user 0.09s system 99% cpu 20.325 total

ovf
27.10.2016
19:05:12
крутые нынче пошли процессоры -- при том, что gcc не убирает if при -O3, разницы между вариантом выше и без if почти нет -- и то и другое 7.5-8s

Timur
27.10.2016
19:07:10
Интересно.

Rafael
27.10.2016
19:10:59
А с флагом -Ofast провали?

И ктсати вы векторизацию не юзаете

Kirill
27.10.2016
19:19:48
@ThatEmbeddedGuy , нет, ну ты слышал??
Люди далеки от отрасли, отсюда и домыслы

Alex Фэils?︙
27.10.2016
19:23:18
Kirill
27.10.2016
19:24:24
Кстате при работе в ембеддеде некоторые люди тоже далеки от отрасли)) почему то большинство вещей держится на суевериях а не фактах

Alex Фэils?︙
27.10.2016
19:24:39
Надо бороться с этим

Kirill
27.10.2016
19:26:53
Типо не используй динамическую память в микроконтроллерах, козленочком станешь, фрагмениация бла бла бла. Но если юзать raii и выделять память на этапе инициализации периферии то ничего страшного не будет

Alex Фэils?︙
27.10.2016
19:27:19
От реализации дин памяти тож зависит

Kirill
27.10.2016
19:27:57
От реализации дин памяти тож зависит
В фриртосе есть 4 типа управления кучей, выбирай на вкус)

Просвещай нас
Так оно не нужно если зарабатывать этим не будешь. А чисто плюсами заработать проще чем плюсами в микроконтроллерах

Alex Фэils?︙
27.10.2016
19:29:23
Дык все равно ж интересно

Vladislav
27.10.2016
19:32:59
Rafael
27.10.2016
19:34:05
Пусть хоть база будет

Kirill
27.10.2016
19:34:41
Так все как обычные плюсы, но работа с внешним миром через регистры. Глобальные адреса в памяти, записал по адресу 1 пин стал единицей, записал в регистр spi1 data register байт данных он переслался, остальное как в обычном коде

Ексепшены дорого, 3 кб занимают.

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