Какой самый быстрый способ получить размер каталога?

Какой самый быстрый способ получить размер каталога? Возможна ли многопоточность?

Как узнать размер всех файлов, находящихся внутри папки?
Размер каталога

Никакие другие вопросы о stackoverflow и других сайтах не упоминают многопоточность, но это должно быть возможно, например, если каталог содержит другие каталоги. Другие решения на stackoverflow довольно медленные, даже медленнее, чем
Диалоговое окно «Папка Windows-> Свойства» даже при выпуске... Перепробовал все решения по переполнению стека, и они либо не компилируются, либо очень медленные...

да, многопоточность возможна

user253751 03.05.2022 18:57

Например. du -h --max-depth=0 DIR_NAME

pptaszni 03.05.2022 19:00

@user253751 user253751 как реализовать многопоточность?

stacker 03.05.2022 19:01

@stacker как ты думаешь?

user253751 03.05.2022 19:15

Возможно, вы захотите посмотреть на производительность в таких инструментах, как Windirstat, прежде чем пытаться писать код.

drescherjm 03.05.2022 21:19
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Whats the fastest way to get the size of a directory?

Под «размером каталога» я полагаю, вы имеете в виду совокупный размер файлов в каталоге и его потомках.

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

Не существует решения, которое было бы самым быстрым во всех случаях использования. Это всегда зависит от деталей.

Is multithreading possibile?

Безусловно. Однако трудно гарантировать, что вы получите лучшую производительность при многопоточности.

Проблема в том, что вычислительная стоимость операции тривиальна, а узким местом является чтение файловой системы. Если каждый поток ожидает запоминающее устройство, вы можете не получить никакого ускорения. На самом деле, если запоминающее устройство представляет собой вращающийся диск, параллельное чтение, скорее всего, будет намного медленнее.

если ОС не переупорядочивает параллельные чтения, чтобы найти самый быстрый маршрут по диску

user253751 03.05.2022 19:16

... и предполагая, что ОС (включая драйверы/модули) не использует массово блокировки, такие как безумный гигантский замок. К сожалению, по состоянию на 2022 год это все еще довольно часто встречается на практике...

Jérôme Richard 03.05.2022 21:42

Другие вопросы по теме