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

Alex Фэils?︙
27.10.2016
08:57:06
http://www.viva64.com/ru/t/0044/
На 64 битах, к примеру

Google

Square
27.10.2016
09:17:06
Не помню откуда - нашёл у в открытых вкладках занятное чтиво
http://www.gamedev.net/page/resources/_/technical/general-programming/game-engine-containers-handle-map-r4495

Andrey
27.10.2016
09:27:08

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
юзать исключения это верный подход или есть другие варианты?

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
Можно и так и так, но не нужно смешивать в рамках одной библиотеки
Эксепшены точно не нужно использовать для стандартных ситуаций

Rafael
27.10.2016
18:16:49

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

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

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

Rafael
27.10.2016
18:18:50

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

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

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 дорогое удовольствие, типо армов например

Artem
27.10.2016
18:40:46

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

Admin
ERROR: S client not available

Эдуард
27.10.2016
18:44:49

Rafael
27.10.2016
18:46:05
но вроде на армах

Эдуард
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

Alex Фэils?︙
27.10.2016
18:48:16

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

Alex Фэils?︙
27.10.2016
19:23:18

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

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

Rafael
27.10.2016
19:26:41

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

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

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

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 кб занимают.