|
папка это файл?
|
|||
---|---|---|---|
#18+
Алексей Роза 2020Тебе создатель языка (Страуструп) открытым текстом говорит: "не тратьте время на C, сразу садитесь за C++". Создатели всех языков так говорят, но надо же понимать, что их цели при этом - исключительно маркетинговые. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 15:12 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
andron81 mayton, для разработки чего ? Операционки. Их на сях обычно делают. Я имею в виду ядро. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 15:13 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
Мы немножко уклонились от темы. Автор у тебя все получилось с туториалом? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 15:14 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
Алексей Роза 2020 ошибаешься, это в C делать без указателей нефиг, а в C++ есть ссылки. И они предпочтительней указателей, т.к. nullptr не словишь случайно. И никакой это не "следующий этап"... это отдельный самостоятельный этап, которому нахрен этот C не сдался. Наоборот - он будет только мешать. Тебе создатель языка (Страуструп) открытым текстом говорит: "не тратьте время на C, сразу садитесь за C++". при этом, кстати, обязательно надо отметить, что сам код в C++ должен быть максимально простым и понятным Таким же простым, как C KISS - Keep It Simple Stupid ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 15:26 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Алексей Роза 2020Тебе создатель языка (Страуструп) открытым текстом говорит: "не тратьте время на C, сразу садитесь за C++". Создатели всех языков так говорят, но надо же понимать, что их цели при этом - исключительно маркетинговые. да ну не. ты типа не согласен, что C убог? там в разы проще ошибку совершить (при том же оверхеде) - уже это его косит. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 15:27 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
Алексей Роза 2020обязательно надо отметить, что сам код в C++ должен быть максимально простым и понятным То есть не использовать 99% этого языка, ограничиваясь "Си с объектами". Прелестно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 15:32 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
andron81 andron81, Буду пробовать поднять виртуальную машину и натягивать код из k&r. А слить каталоги в файл при помощи system или просто слить с командной строки в файл и читать, идея не пошла. Во первых там мусор какой-то который я могу вручную убрать, но там еще и структура, а код будет читать посредствам read будет ли это соотвествовать той юниксовой структуре не очень понятно так как последняя мне не доступна. Подозреваю структура поменялась за столько лет. Давно прошли времена когда была возможна только одна ФС. Нынче в линуксе выбираешь ФС какая тебе больше нравится. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 15:34 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
mayton шаблон RCWP. А что это? Что-то даже гугл не ищет. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 15:37 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Алексей Роза 2020обязательно надо отметить, что сам код в C++ должен быть максимально простым и понятным То есть не использовать 99% этого языка, ограничиваясь "Си с объектами". Прелестно. не настолько ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 15:42 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
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 много чего описано на этот счет, но пока руки не доходят... Если у кого есть подобный опыт, делитесь, будет интересно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 15:45 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
petrav mayton шаблон RCWP. А что это? Что-то даже гугл не ищет. Замена условного оператора полиморфизмом. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 15:51 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
Cerebrumесли сравнивать мою наивную реализацию на FindFirst/FindNextFile Так, может, ты её покажешь сначала? А то вдруг окажется, что ты наступил на что-то примитивное. Например, уходишь в рекурсию не дочитав текущий каталог до конца. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 16:02 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
Cerebrum Проблема в том, что скорость рекурсивного обхода каталога при использовании FindFirst/FindNextFile оставляет желать лучшего, если в каталоге довольно много (сотни тысяч) файлов/каталогов и (не)приличная глубина вложенности. кстати, вот в линухе с nfs тоже проблема непонятная - очень медленно работает... и copy, и всё остальное ну т.е. там нет даже близко 100мбит, даже когда их 1000 мбит ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 16:02 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Так, может, ты её покажешь сначала? А то вдруг окажется, что ты наступил на что-то примитивное. Например, уходишь в рекурсию не дочитав текущий каталог до конца. может и покажу, но пока нет особо времени на адаптацию кода. выкладывать вариант, который никто потестить не сможет, не вижу смысла но сразу скажу, что там нет ничего сверхестественного, все довольно примитивно: обходим каталоги, строим полный путь складывая имена каталогов с предыдущими сегментами путей, извлекаем размер файлов, накапливаем их в total size переменную. Все в рамках WinAPI, выше головы, как говорится, не прыгнешь ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 16:13 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
Алексей Роза 2020 Cerebrum Проблема в том, что скорость рекурсивного обхода каталога при использовании FindFirst/FindNextFile оставляет желать лучшего, если в каталоге довольно много (сотни тысяч) файлов/каталогов и (не)приличная глубина вложенности. кстати, вот в линухе с nfs тоже проблема непонятная - очень медленно работает... и copy, и всё остальное ну т.е. там нет даже близко 100мбит, даже когда их 1000 мбит Какая версия nfs? Если для каждого файла мы используем 1 сетевой roundtrip то понятно что будет вычитка файлов медленно. Чтоб обсуждать тему детально - нужны описания условия эксперимента. Клиент. Сервер. И тестовый объем данных где это тестировалось. Убежден что в linux эта проблема архитектурно решена. Мы просто не слыхали об том как ее правильно решать. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 17:21 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
CerebrumВсе в рамках WinAPI, выше головы, как говорится, не прыгнешь Ну, как я уже говорил, можно уходить в рекурсию по каталогам сразу или складывать найденные каталоги в очередь чтобы обработать их позже, после завершения текущего. Второе эффективнее и позволяет попробовать распараллелить процесс. Также должен помочь упомянутый по ссылкам флаг большого чтения. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 17:33 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
Cerebrum, FindFirst/FindNextFile этим я тоже сделаю рекурсивно, но только когда упрусь, в то, что в убунте не выходит как в K&R . ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 17:46 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
andron81 Cerebrum, FindFirst/FindNextFile этим я тоже сделаю рекурсивно, но только когда упрусь, в то, что в убунте не выходит как в K&R . Покажи сорцы. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 17:49 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
andron81только когда упрусь, в то, что в убунте не выходит как в K&R . Там тебя ждёт сюрприз в виде понимания, что "размер каталога" и "размер файлов в каталоге" - две разные вещи. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 17:53 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov andron81только когда упрусь, в то, что в убунте не выходит как в K&R . Там тебя ждёт сюрприз в виде понимания, что "размер каталога" и "размер файлов в каталоге" - две разные вещи. Не пугайте парня. Из сферы Unix(K&R, Linux, C). Можно посмотреть исходники утилиты tar и потрассировать ее работу в рантайме. Из всех утилит что работают с файловой системой она быстрее всех справляется с операциями слияния тысяч мелких файлов в один. Также и в обратку. Я спецом сравнивал ее с zip и другими тулзами и пришел к выводу что tar - самый быстрый на локальной файловой системе. Какие гвозди в него вбиты - надо разбираться. Но там будут многие ответы на вопросы по оптимизации. Из сферы Windows. Самая быстрая тулза для копирования россыпи файлов - это ntbackup.exe. Вот челлендж. Кто раскурит ее сорцы? ИЛи кто знает как она работает внутри. Там - тоже сакральное знание про NTFS. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 18:00 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov CerebrumВсе в рамках WinAPI, выше головы, как говорится, не прыгнешь Ну, как я уже говорил, можно уходить в рекурсию по каталогам сразу или складывать найденные каталоги в очередь чтобы обработать их позже, после завершения текущего. Второе эффективнее и позволяет попробовать распараллелить процесс. Можно пояснить почему вы считаете второй подход эффективнее? Он, наверное, был бы эффективнее если бы FindFirstFile() порождал бы в оперативке список всех файлов данного каталога. Но мне это кажется не верным. Или допустим эффективнее потому что все inode файлов данного каталога лежат на диске непрерывным вектором. По поводу распаралеливания -- ну тоже странно. Там узкое горлышко будет в дисковых операциях. Ну зачем тут паралелить? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 18:08 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
mayton ИЛи кто знает как она работает внутри. индусы ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 18:16 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
mayton Алексей Роза 2020 пропущено... кстати, вот в линухе с nfs тоже проблема непонятная - очень медленно работает... и copy, и всё остальное ну т.е. там нет даже близко 100мбит, даже когда их 1000 мбит Какая версия nfs? Если для каждого файла мы используем 1 сетевой roundtrip то понятно что будет вычитка файлов медленно. Чтоб обсуждать тему детально - нужны описания условия эксперимента. Клиент. Сервер. И тестовый объем данных где это тестировалось. Убежден что в linux эта проблема архитектурно решена. Мы просто не слыхали об том как ее правильно решать. v4 или 4.1 эта проблема была ещё лет 15 назад у меня реально линух с/на самбу копирует быстрее, чем линух с/на nfs и чистая винда тоже быстрее а чё она решена? NFS 100 лет в обед. Сервер ставится и работает. Какие проблемы там решать столько лет?! Я могу конечно грешить на свои кривые руки... но блин, я поставил сервер, а он сходу еле копирует. И настраивать пытался. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 18:18 |
|
папка это файл?
|
|||
---|---|---|---|
#18+
Алексей Роза 2020 mayton пропущено... Какая версия nfs? Если для каждого файла мы используем 1 сетевой roundtrip то понятно что будет вычитка файлов медленно. Чтоб обсуждать тему детально - нужны описания условия эксперимента. Клиент. Сервер. И тестовый объем данных где это тестировалось. Убежден что в linux эта проблема архитектурно решена. Мы просто не слыхали об том как ее правильно решать. v4 или 4.1 эта проблема была ещё лет 15 назад у меня реально линух с/на самбу копирует быстрее, чем линух с/на nfs и чистая винда тоже быстрее а чё она решена? NFS 100 лет в обед. Сервер ставится и работает. Какие проблемы там решать столько лет?! Я могу конечно грешить на свои кривые руки... но блин, я поставил сервер, а он сходу еле копирует. И настраивать пытался. А здесь https://www.sql.ru/forum/linux спрашивал? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2020, 18:21 |
|
|
start [/forum/topic.php?fid=57&msg=39996985&tid=2017328]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 155ms |
0 / 0 |