Информация об изменениях

Сообщение Re[2]: Что наиболее быстро развивается? Замедлились ли телеф от 01.03.2024 5:27

Изменено 01.03.2024 5:28 vdimas

Re[2]: Что наиболее быстро развивается? Замедлились ли телефоны?
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Голосование по эффективности и расходам ресурсов

PD>https://rsdn.org/poll/9966
Автор: Pavel Dvorkin
Дата: 23.02.24
Вопрос: Надо обработать большой массив по не совсем тривиальному алгоритму. Можно создать его копию, можно и не создавать. На написание кода с копией уйдет час Вашего времени, без копии — 4 часа. Что предпочтете ?


Просто из своего опыта построения числодробилок.

— Организуется конвейер.

— Массивы выделяются предварительно и в процессе вычислений затем не выделяются и не освобождаются.

— При межпоточной передаче работает что-то вроде круговой очереди указателей на такие массивы.

— Перекладывать данные при расчётах в новое место или делать их inplace зависит сугубо от характера вычислений и ни от чего более. Например, преобразование блока сигнала, представленного int32, во float32 можно и нужно делать только inplace, иначе попахивает профнепригодностью.

— Рассуждения Синклера про "гарантии" и прочее можно смело в dev/null, бо инкапсуляцию данных модулей/объектов еще никто не отменял. Способы владения (и передачи владения) блоков данных подчиняются исключительно и только алгоритмам, их обрабатывающим а не внутренним взглядам и жизненным принципам особо упрямых коллег. ))
Re[2]: Что наиболее быстро развивается? Замедлились ли телеф
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Голосование по эффективности и расходам ресурсов

PD>https://rsdn.org/poll/9966
Автор: Pavel Dvorkin
Дата: 23.02.24
Вопрос: Надо обработать большой массив по не совсем тривиальному алгоритму. Можно создать его копию, можно и не создавать. На написание кода с копией уйдет час Вашего времени, без копии — 4 часа. Что предпочтете ?


Просто из своего опыта построения числодробилок.

— Организуется конвейер.

— Массивы выделяются предварительно и в процессе вычислений затем не выделяются и не освобождаются.

— При межпоточной передаче работает что-то вроде круговой очереди указателей на такие массивы.

— Перекладывать данные при расчётах в новое место или делать их inplace зависит сугубо от характера вычислений и ни от чего более. Например, преобразование блока сигнала, представленного int32, во float32 можно и нужно делать только inplace, иначе попахивает профнепригодностью.

— Рассуждения Синклера про "гарантии" и прочее можно смело в dev/null, бо инкапсуляцию данных модулей/объектов еще никто не отменял. Способы владения (и передачи владения) блоков данных подчиняются исключительно и только алгоритмам, их обрабатывающим, а не внутренним взглядам и жизненным принципам особо упрямых коллег. ))