powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / папка это файл?
25 сообщений из 230, страница 4 из 10
папка это файл?
    #39996959
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020Тебе создатель языка (Страуструп) открытым текстом говорит: "не тратьте время на C, сразу
садитесь за C++".

Создатели всех языков так говорят, но надо же понимать, что их цели при этом -
исключительно маркетинговые.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
папка это файл?
    #39996960
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81
mayton,
для разработки чего ?

Операционки. Их на сях обычно делают. Я имею в виду ядро.
...
Рейтинг: 0 / 0
папка это файл?
    #39996961
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы немножко уклонились от темы.

Автор у тебя все получилось с туториалом?
...
Рейтинг: 0 / 0
папка это файл?
    #39996967
Алексей Роза 2020
ошибаешься, это в C делать без указателей нефиг, а в C++ есть ссылки.
И они предпочтительней указателей, т.к. nullptr не словишь случайно.
И никакой это не "следующий этап"... это отдельный самостоятельный этап, которому нахрен этот C не сдался. Наоборот - он будет только мешать.
Тебе создатель языка (Страуструп) открытым текстом говорит: "не тратьте время на C, сразу садитесь за C++".

при этом, кстати, обязательно надо отметить, что сам код в C++ должен быть максимально простым и понятным
Таким же простым, как C
KISS - Keep It Simple Stupid
...
Рейтинг: 0 / 0
папка это файл?
    #39996968
Dimitry Sibiryakov
Алексей Роза 2020Тебе создатель языка (Страуструп) открытым текстом говорит: "не тратьте время на C, сразу
садитесь за C++".

Создатели всех языков так говорят, но надо же понимать, что их цели при этом -
исключительно маркетинговые.
да ну не.
ты типа не согласен, что C убог?
там в разы проще ошибку совершить (при том же оверхеде) - уже это его косит.
...
Рейтинг: 0 / 0
папка это файл?
    #39996970
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020обязательно надо отметить, что сам код в C++ должен быть максимально простым и понятным

То есть не использовать 99% этого языка, ограничиваясь "Си с объектами". Прелестно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
папка это файл?
    #39996971
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81
andron81,

Буду пробовать поднять виртуальную машину и натягивать код из k&r. А слить каталоги в файл при помощи system или просто слить с командной строки в файл и читать, идея не пошла. Во первых там мусор какой-то который я могу вручную убрать, но там еще и структура, а код будет читать посредствам read будет ли это соотвествовать той юниксовой структуре не очень понятно так как последняя мне не доступна.

Подозреваю структура поменялась за столько лет. Давно прошли времена когда была возможна только одна ФС. Нынче в линуксе выбираешь ФС какая тебе больше нравится.
...
Рейтинг: 0 / 0
папка это файл?
    #39996972
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
шаблон RCWP.

А что это? Что-то даже гугл не ищет.
...
Рейтинг: 0 / 0
папка это файл?
    #39996973
Dimitry Sibiryakov
Алексей Роза 2020обязательно надо отметить, что сам код в C++ должен быть максимально простым и понятным

То есть не использовать 99% этого языка, ограничиваясь "Си с объектами". Прелестно.
не настолько
...
Рейтинг: 0 / 0
папка это файл?
    #39996976
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Как модератор я ставлю вопрос о добавлении этих исходников в непотопляемый FAQ.
Давайте уже 1 раз напишем эталонную реализацию и будем на нее ссылаться.


я бы посмотрел на такую функцию


У меня есть проблема в проекте. Нужно под Windows окружением определять размеры каталогов на кластерном файловом хранилище удаленно, но в пределах LAN (протокол SMB/Ethernet). Проблема в том, что скорость рекурсивного обхода каталога при использовании FindFirst/FindNextFile оставляет желать лучшего, если в каталоге довольно много (сотни тысяч) файлов/каталогов и (не)приличная глубина вложенности. Если полазить по всяким stackoverflow , то можно выяснить, что для Windows якобы ничего более производительного, чем использование указанных API функций, нет. Причем у этих функций есть Ex варианты , в которых можно указать ряд оптимизирующих флагов. Пробовал - мало толку, потому что все равно остается еще много лишнего мусора, который ОС тащит из NTFS. При этом не спасает даже то, что сам исследуемый каталог может находиться на суровом enterprise JBOD/RAID из SSD дисков.

Была идея вынести рассчеты на локальный уровень посредством служб(ы), чтобы избежать overhead'a SMB протокола. Это реально дает прирост производительности, но все равно, не настолько насколько хотелось бы. А хотелось бы приблизиться к производительности Windows Explorer и идеале обойти его.

В целом, если сравнивать мою наивную реализацию на FindFirst/FindNextFile и ту реализацию, которая используется в Explorer'e (открыть каталог, правой кнопкой мыши, посмотреть свойства), то создается впечатление, что Проводник не использует FindFirst/NextFile API, либо использует их как-то очень хитро, потому что производительность его рассчетов значительно превышает производительность указанных функций в моей реализации (проводил как-то анализ на "холодных" данных/кэше).

Подозреваю, что придется нырнуть ближе к ядру и MFT, благо в MSDN много чего описано на этот счет, но пока руки не доходят...

Если у кого есть подобный опыт, делитесь, будет интересно :)
...
Рейтинг: 0 / 0
папка это файл?
    #39996979
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
шаблон RCWP.

А что это? Что-то даже гугл не ищет.

Замена условного оператора полиморфизмом.
...
Рейтинг: 0 / 0
папка это файл?
    #39996980
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Замена условного оператора полиморфизмом.

может CRTP?
...
Рейтинг: 0 / 0
папка это файл?
    #39996981
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cerebrumесли сравнивать мою наивную реализацию на FindFirst/FindNextFile
Так, может, ты её покажешь сначала? А то вдруг окажется, что ты наступил на что-то
примитивное. Например, уходишь в рекурсию не дочитав текущий каталог до конца.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
папка это файл?
    #39996982
Cerebrum
Проблема в том, что скорость рекурсивного обхода каталога при использовании FindFirst/FindNextFile оставляет желать лучшего, если в каталоге довольно много (сотни тысяч) файлов/каталогов и (не)приличная глубина вложенности.

кстати, вот в линухе с nfs тоже проблема непонятная - очень медленно работает... и copy, и всё остальное
ну т.е. там нет даже близко 100мбит, даже когда их 1000 мбит
...
Рейтинг: 0 / 0
папка это файл?
    #39996985
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Так, может, ты её покажешь сначала? А то вдруг окажется, что ты наступил на что-то
примитивное. Например, уходишь в рекурсию не дочитав текущий каталог до конца.

может и покажу, но пока нет особо времени на адаптацию кода.
выкладывать вариант, который никто потестить не сможет, не вижу смысла

но сразу скажу, что там нет ничего сверхестественного, все довольно примитивно:
обходим каталоги, строим полный путь складывая имена каталогов с предыдущими сегментами путей, извлекаем размер файлов, накапливаем их в total size переменную. Все в рамках WinAPI, выше головы, как говорится, не прыгнешь
...
Рейтинг: 0 / 0
папка это файл?
    #39996997
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
Cerebrum
Проблема в том, что скорость рекурсивного обхода каталога при использовании FindFirst/FindNextFile оставляет желать лучшего, если в каталоге довольно много (сотни тысяч) файлов/каталогов и (не)приличная глубина вложенности.

кстати, вот в линухе с nfs тоже проблема непонятная - очень медленно работает... и copy, и всё остальное
ну т.е. там нет даже близко 100мбит, даже когда их 1000 мбит

Какая версия nfs? Если для каждого файла мы используем 1 сетевой roundtrip то понятно что будет вычитка
файлов медленно. Чтоб обсуждать тему детально - нужны описания условия эксперимента. Клиент. Сервер.
И тестовый объем данных где это тестировалось. Убежден что в linux эта проблема архитектурно решена.
Мы просто не слыхали об том как ее правильно решать.
...
Рейтинг: 0 / 0
папка это файл?
    #39997003
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CerebrumВсе в рамках WinAPI, выше головы, как говорится, не прыгнешь

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

Также должен помочь упомянутый по ссылкам флаг большого чтения.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
папка это файл?
    #39997005
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cerebrum,

FindFirst/FindNextFile

этим я тоже сделаю рекурсивно, но только когда упрусь, в то, что в убунте не выходит как в K&R .
...
Рейтинг: 0 / 0
папка это файл?
    #39997006
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81
Cerebrum,

FindFirst/FindNextFile

этим я тоже сделаю рекурсивно, но только когда упрусь, в то, что в убунте не выходит как в K&R .

Покажи сорцы.
...
Рейтинг: 0 / 0
папка это файл?
    #39997007
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81только когда упрусь, в то, что в убунте не выходит как в K&R .

Там тебя ждёт сюрприз в виде понимания, что "размер каталога" и "размер файлов в каталоге"
- две разные вещи.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
папка это файл?
    #39997010
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

andron81только когда упрусь, в то, что в убунте не выходит как в K&R .

Там тебя ждёт сюрприз в виде понимания, что "размер каталога" и "размер файлов в каталоге"
- две разные вещи.

Не пугайте парня.

Из сферы Unix(K&R, Linux, C). Можно посмотреть исходники утилиты tar и потрассировать ее работу в рантайме.
Из всех утилит что работают с файловой системой она быстрее всех справляется с операциями слияния тысяч
мелких файлов в один. Также и в обратку. Я спецом сравнивал ее с zip и другими тулзами и пришел к выводу
что tar - самый быстрый на локальной файловой системе. Какие гвозди в него вбиты - надо разбираться.
Но там будут многие ответы на вопросы по оптимизации.

Из сферы Windows. Самая быстрая тулза для копирования россыпи файлов - это ntbackup.exe.
Вот челлендж. Кто раскурит ее сорцы? ИЛи кто знает как она работает внутри. Там - тоже сакральное
знание про NTFS.
...
Рейтинг: 0 / 0
папка это файл?
    #39997011
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

CerebrumВсе в рамках WinAPI, выше головы, как говорится, не прыгнешь

Ну, как я уже говорил, можно уходить в рекурсию по каталогам сразу или складывать
найденные каталоги в очередь чтобы обработать их позже, после завершения текущего. Второе
эффективнее и позволяет попробовать распараллелить процесс.
Можно пояснить почему вы считаете второй подход эффективнее? Он, наверное, был бы
эффективнее если бы FindFirstFile() порождал бы в оперативке список всех файлов данного
каталога. Но мне это кажется не верным. Или допустим эффективнее потому что все inode
файлов данного каталога лежат на диске непрерывным вектором.

По поводу распаралеливания -- ну тоже странно. Там узкое горлышко будет в дисковых
операциях. Ну зачем тут паралелить?
...
Рейтинг: 0 / 0
папка это файл?
    #39997013
mayton
ИЛи кто знает как она работает внутри.

индусы
...
Рейтинг: 0 / 0
папка это файл?
    #39997015
mayton
Алексей Роза 2020
пропущено...

кстати, вот в линухе с nfs тоже проблема непонятная - очень медленно работает... и copy, и всё остальное
ну т.е. там нет даже близко 100мбит, даже когда их 1000 мбит

Какая версия nfs? Если для каждого файла мы используем 1 сетевой roundtrip то понятно что будет вычитка
файлов медленно. Чтоб обсуждать тему детально - нужны описания условия эксперимента. Клиент. Сервер.
И тестовый объем данных где это тестировалось. Убежден что в linux эта проблема архитектурно решена.
Мы просто не слыхали об том как ее правильно решать.

v4 или 4.1
эта проблема была ещё лет 15 назад
у меня реально линух с/на самбу копирует быстрее, чем линух с/на nfs
и чистая винда тоже быстрее
а чё она решена? NFS 100 лет в обед. Сервер ставится и работает. Какие проблемы там решать столько лет?!
Я могу конечно грешить на свои кривые руки... но блин, я поставил сервер, а он сходу еле копирует.
И настраивать пытался.
...
Рейтинг: 0 / 0
папка это файл?
    #39997016
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
mayton
пропущено...

Какая версия nfs? Если для каждого файла мы используем 1 сетевой roundtrip то понятно что будет вычитка
файлов медленно. Чтоб обсуждать тему детально - нужны описания условия эксперимента. Клиент. Сервер.
И тестовый объем данных где это тестировалось. Убежден что в linux эта проблема архитектурно решена.
Мы просто не слыхали об том как ее правильно решать.

v4 или 4.1
эта проблема была ещё лет 15 назад
у меня реально линух с/на самбу копирует быстрее, чем линух с/на nfs
и чистая винда тоже быстрее
а чё она решена? NFS 100 лет в обед. Сервер ставится и работает. Какие проблемы там решать столько лет?!
Я могу конечно грешить на свои кривые руки... но блин, я поставил сервер, а он сходу еле копирует.
И настраивать пытался.


А здесь https://www.sql.ru/forum/linux спрашивал?
...
Рейтинг: 0 / 0
25 сообщений из 230, страница 4 из 10
Форумы / C++ [игнор отключен] [закрыт для гостей] / папка это файл?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]