Alexander "SonnySlave"
то есть на Си он просто взял и написал, а на крестах написал, а потом оптимизировать ещё сел
🦥Alex Fails
ну, автор сразу в плюсах использует фичи, которые тяжелые
🦥Alex Fails
виртуализация и исключения
🦥Alex Fails
в сишном коде такого оверхеда нету по определению
🦥Alex Fails
и еще если юзать смарт-птры, то они тоже в дин. память лезут - это аллокации дополнительные
🦥Alex Fails
🦥Alex Fails
Oleg
Плюсы хороши доя общих случаев. Если тебе надо дрочить на скорость - не используй стл - пиши свои абстракции на нужные тебе типы и свои аллокаторы.
RaFaeL
Добрый вечер
Извините, это я снова со своими детскими тупыми вопросами
typedef struct lxw_chart {
FILE *file;
uint8_t type;
uint8_t subtype;
uint16_t series_index;
void (*write_chart_type) (struct lxw_chart *);
void (*write_plot_area) (struct lxw_chart *);
lxw_chart_axis *x_axis;
lxw_chart_axis *y_axis;
мне нужно имея значение адреса в памяти этой структуры получить значения *x_axis и *y_axis так как апи такое не возвращает, только может принимать в других методах эти значения. Сколько прибавить? вот этот вот void (*write_chart_type) (struct lxw_chart *) совсем непонятно сколько
RaFaeL
выравнивание по 4 байта
Viacheslav
RaFaeL
не знаю, я не знаю С ))
Alexander "SonnySlave"
RaFaeL
спасибо, посчитал )
Alexander "SonnySlave"
@crackedmind первый в очереди, наверное 😊
kitsu
Есть тулы valgrind-а , которые выдают список функций и сколько времени каждый вызов исполнялся?
Чего-то в callgrind+kcachegrind ничего такого не вижу
kitsu
Ну или не валгринд, если есть еще чего вменяемое с динамической инструментацией
kitsu
Ну или может быть есть еще что-нибудь +/- готовое для отслеживания критических секций. Код чего-то после апдейта либ подозрительно долго начал работать
Александр
Matwey
Господа
Matwey
Позвольте опрос
🦥Alex Fails
давай
Matwey
Кто пользуется тем, что argv[argc]==NULL, а кто считает аргументы по argc?
🦥Alex Fails
Matwey
int main(char** argv, int argc)
🦥Alex Fails
Кто пользуется тем, что argv[argc]==NULL, а кто считает аргументы по argc?
anonymous poll
Считаю по argc – 120
👍👍👍👍👍👍👍 93%
Оба варианта – 6
▫️ 5%
Пользуюсь этим равенством – 3
▫️ 2%
👥 129 people voted so far.
🦥Alex Fails
Matwey
🦥Alex Fails
там еще обновил всякие каналы, гляньте, если кто не заметил
🦥Alex Fails
алсо, в тему argc/argv. Тут в супаро обсуждали итератор по null-terminated arrays. Ща подкину вам линкоты на эту тему: https://t.me/supapro/205935
#faq #argc #iterator
Vsevolod
for (;*argv != NULL; argv ++) :)
🦥Alex Fails
Vsevolod
а он чо?
Vsevolod
мы же про argv
Matwey
Ну, т.е. ты неявно используешь что argv[argc] == NULL
Vsevolod
неа
Vsevolod
я argc вообще не использую
Vsevolod
argc для слабаков!
Ilya
Evgenii
Vsevolod
@kitsu я google-perftools использовал
Alexander "SonnySlave"
Vsevolod
хотя в последнее время все больше perf
Matwey
Я имею ввиду, что есть некоторая избыточность информации. С одной стороны число элементов argv задается нам извне отдельной переменной, с другой стороны этот список сам по себе NULL-terminated. А вот вообразим, теперь, что разное число элементов получится при подсчете двумя способами?
kitsu
Alexander "SonnySlave"
или там и по времени есть... не помню уже
Vsevolod
@matwey_kornilov ну просто ты можешь сказать if (argc < 3) { printf("читай ман, чюрка тупая\n"); return -1; }
Vsevolod
а это многого стоит
Vsevolod
особенно учитывая, что аргументов у тебя может быть сто тысяч в линупсе
Berkus
Alexander "SonnySlave"
Вон даже @berkus подтверждает, что Си лучше
Alexander "SonnySlave"
а беркус фигни не скажет
🦥Alex Fails
++
🦥Alex Fails
Ilya
kitsu
там процент по инструкциям, а не по времени
Vsevolod
это настраивается
Ilya
Berkus
✙ Fatum ✙
я наверное в танке, но вот: https://github.com/Reactive-Extensions/RxCpp ничего себе. не знала, что оно с++ поддерживает! какая няшность
Berkus
✙ Fatum ✙
✙ Fatum ✙
я таки в танке
Berkus
оно правда там синтаксически немношко адово, т.к. плюсцы, но работает... большую часть времени
✙ Fatum ✙
Berkus
игрался только
Berkus
ты пробовал?
мне потом какая-то другая реактивная либа понравилась больше, но у нее тоже были проблемс
✙ Fatum ✙
просто у нас тут микросервисы, и есть высоконагруженные тоже
✙ Fatum ✙