169 похожих чатов

Да, вот только подобная "оптимизация" имеет смысл только в подобной

учебной программе, где ты этот массив используешь 1 раз для вывода и всё. Не хочешь 2 раза функцию вызывать? Так что мешает записать в стек весь этот массив, добавив перенос строки и вывести уже из стека?

9 ответов

26 просмотров

Переполнение стека не хотите? И вообще это абсолютно не гуманно, и глупо. Не нужно в стек данные переносить, лишняя работа с памятью (если они туда ещё поместятся)

Денис-Rabbit Автор вопроса
CLFLUSH 🇷🇺 rdseed
Переполнение стека не хотите? И вообще это абсолют...

Ну глупость же. Переполнение стека данными из даты, которые ты же туда и записал))) Лишняя работа с памятью... Да у тебя и так скорее всего весь используемый стек будет в кэшэ, если и не L1, то L2 находится))

Денис Rabbit
Ну глупость же. Переполнение стека данными из даты...

Какими данными из даты? Стэк для этого абсолютно не предназначен. И причём здесь кэш вообще?

Денис Rabbit
Ну глупость же. Переполнение стека данными из даты...

В общем, давайте вы кодом покажите, что вы здесь предлагаете?

Денис-Rabbit Автор вопроса
CLFLUSH 🇷🇺 rdseed
Какими данными из даты? Стэк для этого абсолютно н...

Теми самыми, которые представляют собой массив😂 А кэш при том, что при записи и чтении из него не придется особо ждать память, следовательно отработает всё быстро)

Денис Rabbit
Теми самыми, которые представляют собой массив😂 А ...

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

зайди под своим акком, а не от имени канала, а то будешь удален

В целом, если представить, что вызов идёт через API ОС Linux, то в случае с одним байтом, передаётся только адрес, и в путь. А если отдельно, нужно сначала вывести первую строку, потом передать адрес на перенос, и вывести её тоже. Таким образом +3-4 инструкции, и +прерывание. Это наилучший вариант. А он предлагает вообще сначала все данные в стэк записать, прибавить к данным символ, и вывести. Побайтное, а если даже данные делятся на 4, или 8 - копирование по dword/qword явно медленнее, это же лишние действия, внутри ядра почти тоже самое происходит. А если стэка не хватит? Нужно тогда выделять память, и оперировать с ней. Выделение памяти ну это вообще. Причём тут кэш уже? Это уже какой-то ад пошёл, тут он не поможет

ты тут?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта