не знаю как ты считал, но при работе с кластерами FAT12 расходов больше, т.к. требуется деление на 3 и умножение на 2, чтобы просто прочитать номер кластера. ВНЕЗАПНО, он занимает полтора байта. т.к. 12 бит. и ещё там есть понятие чётные и нечётные кластера (через маску высчитывают). а FA16 просто берут и 2 байта снимают из таблицы.Alekcandr wrote:Странно, что FAT16 быстрее FAT12. По моим данным это не так. Ну да ладно.
Применительно к теме можно посмотреть исходники Nextor и как там реализуется математика применительно к FAT16. Функции деления 32/16 в чистом виде не нашел, может плохо искал.
Математические функции
Moderator: Shaos
-
- Maniac
- Posts: 223
- Joined: 05 Oct 2009 19:44
- Location: 212.164.105.5
Re: Математические функции
-
- Doomed
- Posts: 665
- Joined: 01 Oct 2007 10:30
- Location: Ukraine
Re: Математические функции
Я не готов обсуждать тонкости математики у FAT12 и FAT16, поэтому и привел ссылку на исходники. Человек при желании, которой в теме, на мой взгляд, сможет найти там для себя полезности, в том числе и математические трюки (не взагали, а применительно к математике FAT).Sayman wrote:не знаю как ты считал, но при работе с кластерами FAT12 расходов больше, т.к. требуется деление на 3 и умножение на 2, чтобы просто прочитать номер кластера. ВНЕЗАПНО, он занимает полтора байта. т.к. 12 бит. и ещё там есть понятие чётные и нечётные кластера (через маску высчитывают). а FA16 просто берут и 2 байта снимают из таблицы.Alekcandr wrote:Странно, что FAT16 быстрее FAT12. По моим данным это не так. Ну да ладно.
Применительно к теме можно посмотреть исходники Nextor и как там реализуется математика применительно к FAT16. Функции деления 32/16 в чистом виде не нашел, может плохо искал.
А что до скорости все просто. У FAT16 кластеров намного больше, соответственно для конечного пользователя файловые операции (не все) и происходят медленней.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
http://www.orion-ext.narod.ru
-
- Maniac
- Posts: 223
- Joined: 05 Oct 2009 19:44
- Location: 212.164.105.5
Re: Математические функции
Ну я с этими фатами давно уже работаю и знаю как это всё внутри выглядит. Да и msx-dos2/Nextor, тоже есть и видел их внутренности. Плюс ещё для Профи PQ-DOS тоже есть исходники.Alekcandr wrote:Я не готов обсуждать тонкости математики у FAT12 и FAT16, поэтому и привел ссылку на исходники. Человек при желании, которой в теме, на мой взгляд, сможет найти там для себя полезности, в том числе и математические трюки (не взагали, а применительно к математике FAT).
А что до скорости все просто. У FAT16 кластеров намного больше, соответственно для конечного пользователя файловые операции (не все) и происходят медленней.
Да и математика работы с кластерами довольно простая и базируется на битовых сдвигах, кроме фат12, сдвигами деление на 3 сложнее сделать. Учитывая, что для взятия 1 кластера, приходится читать 2 и в зависимости от чётности кластера искомый будет либо левые полтора байта, либо правые. в общем тот ещё гемор.
а на fat16 таких операций не требуется. берём 2 байта с кодом следующего кластера, номер кластера преобразовываем в номер сектора, прибавляем стартовый сектор раздела относительно начала hdd и читаем. кол-во кластеров диска и фата на скорость никак не влияют, влияет фрагментированность файла. но и тут тоже есть пара хинтов. в основном все тормоза возникают только на механических дисках. на твердотельных дисках даже фрагментированность не затормаживает доступ.
математика 32:16 которая мне нужна была, она для утилиты форматирования. ну и вообще, было бы неплохо старые процедуры поменять. раз они проблемные оказались.
-
- Doomed
- Posts: 665
- Joined: 01 Oct 2007 10:30
- Location: Ukraine
Re: Математические функции
Все так с вычислением / путешествием по FAT.
Только влияет, влияет количество кластеров, что тянет за собой и размер таблицы FAT, и объем сканирования FAT для подсчет свободного дискового пространства в файловых операциях, и т.п.
Вот и выходит, что для конечного пользователя 8 битки MSX-DOS, или FAT подобная ОС с FAT12 самая шустрая.
Только влияет, влияет количество кластеров, что тянет за собой и размер таблицы FAT, и объем сканирования FAT для подсчет свободного дискового пространства в файловых операциях, и т.п.
Вот и выходит, что для конечного пользователя 8 битки MSX-DOS, или FAT подобная ОС с FAT12 самая шустрая.
Так может банально Си? Не так быстро, но и не часто оно нужно. Отформатировал и забыл.Sayman wrote:математика 32:16 которая мне нужна была, она для утилиты форматирования. ну и вообще, было бы неплохо старые процедуры поменять. раз они проблемные оказались.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
http://www.orion-ext.narod.ru