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

Коллеги, вопрос. Читаю тут про всякие хипы стеки и другие

бородатые штуки и недавно смотрел доклад на эту тему, про то, что если из функций мы возвращаем указатель, то это сразу на Хип переносится (ну или сразу аллоцируется там рантаймом, не до конца понял) и это вроде как медленнее чем вернуть просто копию из функции...


Вот у меня сейчас есть задача на проекте, что нужно обновлять постам теги (с клиента приходит массив из ID тегов, которые в конечном итоге должны быть).

Я думаю написать функцию, которая будет получать результирующий массив и возвращать мне 2 массива (теги для удаления и для добавления).

Опустим сам юзкейс, он для примера (нет).

Насколько будет неправильным, вместо возврата двух слайсов, их передавать с запасом капаситм и наполнять внутри функции?

13 ответов

27 просмотров

(см. escape analys) — преждевременная оптимизация —) менять аргументы функции такое себе...

Andrey Burov
(см. escape analys) — преждевременная оптимизация ...

Про анализ читаю, да. Общее понимание есть, вроде бы... Про аргументы не понял :(

Andrey Burov
или нет..

Или да :) Тут как посмотреть

🏳️ Phil Kulin
Или да :) Тут как посмотреть

я отталкиваюсь от того что append возвращает все же новый slice...

Andrey Burov
я отталкиваюсь от того что append возвращает все ж...

Но слайс всё-таки это не совсем то, что в примере )

Возможен такой подход? Что если функцию можно применять сколько угодно раз к "состоянию", и ничего особо не поломается, то можно и по ссылке, а вот если новое "состояние", не совместимо с предыдущим (вызов той же функции, будет логической ошибкой), то уже надо создавать новое "состояние", т.е. копировать Т.к. делать все констнатным, достаточно дорого, и компилятор это не оптимизирует (в отличии от ghc + haskell)

Misha Borisov
Возможен такой подход? Что если функцию можно при...

для этого поведения есть математическое название... .

Misha Borisov
Куда копать для изучения этой темы?

Свойство называется идемпотентность)

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта