HandyCache форум

Главная категория => Новые предложения => Тема начата: Вовочка от 02 мая 2016, 11:44:52



Название: Снижение фрагментации при записи в кеш
Отправлено: Вовочка от 02 мая 2016, 11:44:52
HandyCache очень сильно фрагментирует файлы при записи их в кеш даже при полностью пустом диске, число фрагментов бывает доходит до 50 у файлов размером всего 50-100 килобайт... моё предложение сделать в программе чтото типо предварительного кеша диска чтоб он лил на диск уже цельные файлы, а не разбрасывал их мелкими кусками по всему диску, а то файлы на диске после работы HandyCache выглядят как фарш после мясорубки и это приводит и к снижению производительности программы (при чтении таких файлов с диска (когда читается по 10 файлов в секунду при 50 фрагментов в каждом) и повышает очень сильно физический износ диска. Про то что всякие NTFS не страдают от фрагментации... - это бред они ещё как страдают (просто они меньше страдают чем старые системы на вроде FAT)


Название: Re: Снижение фрагментации при записи в кеш
Отправлено: LordMerlin от 02 мая 2016, 13:52:20
Для исправления этой досадной проблемы надо сделать следующее, любой программой например TrueCrypt, которая может делать контейнеры и подключать их как диски, сделать пустой диск, скинуть туда сам Хенди и там же разместить его кэш. Этим убиваем 2 зайца, исключаем фрагментацию файловой системы физического диска и ограничиваем рост кэша.


Название: Re: Снижение фрагментации при записи в кеш
Отправлено: animalia от 03 мая 2016, 14:40:11
IMHO проблема здесь не в HandyCache.
Запись файлов на диск это работа операционки. Если как вы говорите файл в 100кб у вас разбивается на 50 фрагментов - значит размер кластера всего 2 кб. Поверьте это очень мало. На более-менее современных винчестерах с объёмами исчисляемыми сотнями гигабайт это издевательство над железом. Переформатируйте на кластер в 64кб и будет счастье.
Да будет потеря свободного места, но она не так страшна как многим кажется. В худшем случае мы теряем 62кб дискового пространства на файл. Но еще раз это ХУДШИЙ случай.
А в реальности возьмем для примера диск D моего ноута: 506020 файлов суммарным размером 341930403534 байт занимают 343070822086 байт диска. Потери места на файл = (343070822086 - 341930403534)/506020 = 2254 байта. Да в сумме это 1гб но при размере в 350гб это всего 0,3%
 
Если же отформатировать раздел не представляется возможным, и идти по пути виртуализации, то в Win7 и старше есть поддержка виртуальных жестких дисков (VHD). То есть средствами самой Windows можно создать и примонтировать виртуальный диск, который для всех программ видим как обычный. Не то что я против TrueCrypt, просто у него слегка другие задачи, да и нагрузка на процессор при работе не малая.


Название: Re: Снижение фрагментации при записи в кеш
Отправлено: Вовочка от 03 мая 2016, 22:59:25
Может конечно это проблема не в HandyCache, а в драйвере файловой системы. У меня сейчас кеш находится в образе VDFCrypt размером в 1 гигабайт и может именно он разбрасывает их так "не по уму" по своему контейнеру, хотя я сейчас делаю так сначала HandyCache льёт файлы на рам диск, а затем я уже спомощью копирования этот предворительный кеш копирую с рам (после дефрагментации рам диска) в контейнер VDFCrypt (при таком методе кеш в контейнере получается без фрагментации) а HandyCache в процессе работы пользуется двумя папками кеша один это рам диск куда он сохраняет и второй только для чтения это контейнер VDFCrypt... но такая полуручная процедура крайне муторное дело каждый раз копировать предворительный кеш вручную в основной кеш перед выключением компа, щас тестирую файловую систему exFAT она при работе с HandyCache дробит файлы только на две части (одна маленькая часть + вторая вся оставшаяся часть от файла) Просто вот что интересно что при работе например WinRar'a файловая система (таже FAT) не фрагментирует файлы, а пишет их попорядку без фрагментации, а при работе с HandyCache она очень сильно фрагментирует файлы так что мне кажется тут дело не в системе, а именно в HandyCache и в его такой "некорректной" работе при создании своего кеша (в системе ХР).

 Есть конечно ещё один выход из такой ситуации держать кеш на флешке так как твёрдотельные накопители информации почти не страдают от фрагментации так как у них нету механической читающей(пишущей) части и соответственно там нечему изнашиваться при чтении(записи) файла состоящего из множества фрагментов...

 А увеличивать размер сектора в моём случае не очень эффективно так как у меня кеш состоит процентов на 70 из мелких файлов размером в 1-2 Кб и хранить их в секторах с большим размером просто не эффективно так как потери будут огромные, сейчас у меня размер сектора стоит 512байт а размер всего кеша колеблется в пределах одного гигабайта (так как при моих нуждах держать кеш более 1 гига не выгодно так как на более больших размерах кеша процент его использования уже почти не повышается так как инфа более 1 гига в кеше уже не актуальна и я к ней уже никогда не возвращаюсь поэтому остальные гиги кеша это хлам уже, тоесть всё что старее 7 дней в кеше то уже просто ненужный мусор и держать его смыселу нету)


Название: Re: Снижение фрагментации при записи в кеш
Отправлено: Anymore от 04 мая 2016, 19:19:32
Это ж надо ещё заметить всё это.

Лично я наблюдал сильную фрагментацю при оцифровке видео. Разные программы фрагментируют по разному. Но факт фактом. Мои поиски истины закончились теорией о том что входящий поток много медленнее пропускной способности дисковой системы.

Предполагаю, и здесь, если скорость интернета будет >200 Мбит/c то и кэш будет писаться ровно, как по заказу.