Anonymous | Login | Signup for a new account | 21-11-24 09:54 UTC |
All Projects | SAS.Планета | Домен, сайт, форум, багтрекер | Доработка карты (ZMP) | Переводы и локализации | Прочее |
My View | View Issues | Change Log | Roadmap | Search |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0000977 | SAS.Планета | [All Projects] Хотелка | public | 14-09-2011 10:31 | 10-10-2012 11:50 | ||||
Reporter | xyz | ||||||||
Assigned To | vdemidov | ||||||||
Priority | normal | Severity | minor | Reproducibility | always | ||||
Status | closed | Resolution | fixed | ||||||
Platform | Windows | OS | XP | OS Version | SP3 | ||||
Product Version | 110418 | ||||||||
Target Version | 120808 | Fixed in Version | 120808 | ||||||
Summary | 0000977: Выделение места под файл перед сохранением | ||||||||
Description | Пока не реализовано хранение тайлов в БД, предлагаю следующую фичу: выделять необходимое место на диске под файл перед его сохранением. Это поможет избежать фрагментации файла при его сохранении. | ||||||||
Additional Information | сейчас у меня база хранится в томе truecrypt, 16 гиг. занято 53%, из них фрагментированных файлов 27%. это не хорошо. | ||||||||
Tags | кэш, тайлы | ||||||||
Attached Files | |||||||||
Notes | |
(0003926) vdemidov (manager) 14-09-2011 10:38 |
И чем это поможет? Одиночные тайлы в любом случае пишутся на диск за один раз. |
(0003937) gpsMax (manager) 14-09-2011 21:53 edited on: 14-09-2011 21:53 |
Ни разу это не поможет - каждый мелкий тайл с высокой вероятностью пишется непрерывно и не фрагментируется, а каких-то больших там и нет. Нет, потому что ж на картосервисах всё под веб оптимизировано. Хотя у меня трукриптовский том тоже жестоко фрагментирован. Загадка. |
(0003947) Tolik (manager) 15-09-2011 06:07 edited on: 15-09-2011 06:17 |
Так это проблема трукрипта. Он, наверно, постоянно шифрует данные, переписывает их с места на место, не знаю. Если говорить о записи тайлов на диск САС.Планетой, то тут ничего улучшить невозможно: большинство тайлов помещаются в один кластер и фрагментироваться не могут никак. Предлагаю закрыть. P.S. Хотя встречаются тайлы размером 100 КБ и больше, но нечасто. P.P.S. В моём кэше самый большой тайл - 148 КБ (Bing Map), занимает целых 3 кластера по 64 КБ. |
(0003948) vdemidov (manager) 15-09-2011 06:16 |
Ну я с самого начала собирался закрывать, но вдруг у кого полезные замечания есть. |
(0003949) xyz (reporter) 15-09-2011 06:18 |
при чём тут трукрипт? система видит его как NTFS, и работает с ним соответственно. а что там шифруется - NTFS не важно. я сегодня поиграюсь с этой темой, не закрывайте пока. |
(0003950) Tolik (manager) 15-09-2011 06:18 edited on: 15-09-2011 06:25 |
И какой там размер кластера? P.S. Сам проверил: такой же, как на обычном диске, задаётся при создании тома. |
(0003951) vdemidov (manager) 15-09-2011 06:24 |
В данном случае фрагментация файлов зависит исключительно от действий ОС и особенностей ФС. Программа не изменяет файлов, а только может удалить или записать файл. Операция выполняется за одно действие. |
(0003953) xyz (reporter) 15-09-2011 07:20 edited on: 15-09-2011 07:29 |
NTFS Information Dump V1.01 Copyright (C) 1997 Mark Russinovich http://www.sysinternals.com Volume Size ----------- Volume size : 16383 MB Total sectors : 33553919 Total clusters : 33553919 Free clusters : 15497835 Free space : 7567 MB (46% of drive) Allocation Size ---------------- Bytes per sector : 512 Bytes per cluster : 512 Bytes per MFT record : 1024 Clusters per MFT record: 2 а вот что удалось посчитать в экселе, правда он всосал только 64к строк, но начиная с самых крупных файлов: Количество.по.полю.1....Fragments....................................... размер..2.......3.......4.......5...............Общий.итог 15......10861...................................10861 18......8666....134.............................8800 19......8174....214.............................8388 17......6231....114.............................6345 20......4419....253.............................4672 23......2900....595.............................3495 22......2407....466.............................2873 27......1748....300.....659.....................2707 26......1520....323.....791.....................2634 25......1208....322.....878.....................2408 21......1766....352.............................2118 28......1177....198.....500.....................1875 16......1471....78..............................1549 24......499.....523.....420.....................1442 29......657.....154.....222.....................1033 31......750.....61......106.....................917 30......665.....100.....141.....................906 35......273.............5.......3...............281 34......248.....2.......7.......4...............261 33......189.....18......17......18..............242 32......109.....31......73......13..............226 36......192.............2.......................194 39......180.....................................180 38......137.....................................137 37......96......................................96 43......84......................................84 42......67......................................67 44......65......................................65 47......63......................................63 51......47......................................47 41......47......................................47 46......46......................................46 50......44......................................44 67......40......................................40 55......40......................................40 45......29......................................29 59......27......................................27 52......25......................................25 54......23......................................23 62......22......................................22 49......22......................................22 58......21......................................21 63......19......................................19 60......15......................................15 68......13......................................13 66......12......................................12 71......11......................................11 53......11......................................11 70......8.......................................8 65......8.......................................8 40......8.......................................8 57......7.......................................7 83......6.......................................6 75......6.......................................6 74......6.......................................6 69......6.......................................6 61......6.......................................6 79......5.......................................5 48......4.......................................4 86......3.......................................3 132.....2.......................................2 87......2.......................................2 81......2.......................................2 76......2.......................................2 142.....1.......................................1 141.....1.......................................1 127.....1.......................................1 125.....1.......................................1 122.....1.......................................1 118.....1.......................................1 115.....1.......................................1 113.....1.......................................1 95......1.......................................1 94......1.......................................1 93......1.......................................1 92......1.......................................1 91......1.......................................1 90......1.......................................1 88......1.......................................1 84......1.......................................1 82......1.......................................1 78......1.......................................1 77......1.......................................1 73......1.......................................1 Ог......57437...4238....3821....38..............65534 |
(0003954) vdemidov (manager) 15-09-2011 07:49 |
И? |
(0003955) xyz (reporter) 15-09-2011 08:07 |
планета на паскале писана, на сколько я помню. вот такой код создаёт нефрагментированный файл в томе трукрипта размером в 1 гиг. assign ( f1,paramstr(1)); rewrite (f1); Seek(f1,size-1); Write(f1,temp); close (f1); |
(0003956) vdemidov (manager) 15-09-2011 08:49 edited on: 15-09-2011 08:50 |
Используется TFileStream. |
(0003957) vdemidov (manager) 15-09-2011 10:25 |
Обдумал. Возможно и имеет смысл. Нужно внимательнее изучить исходники TFileStream и почитать про операции с файлами в винде. |
(0003960) Tolik (manager) 15-09-2011 11:28 |
...и поскорее придумать кэш в виде больших файлов ;) Может сделать как в МЯК? Сваливать много тайлов в один файл с индексом в начале? |
(0003961) xyz (reporter) 15-09-2011 11:32 |
проще в SQLite хранить, но это к данному тикету не относится :) |
(0003967) gpsMax (manager) 15-09-2011 17:15 |
xyz, согласен и с тем, что с точки зрения системы это обычный том NTFS, и с тем, что размер кластера лучше выставлять минимально возможный, 512 байт, чтобы не терять место на хвостах файлов. Так что фрагментация вполне возможна. |
(0003978) Tolik (manager) 20-09-2011 10:27 |
vdemidov, а как именно fixed? |
(0003979) vdemidov (manager) 20-09-2011 10:44 |
Именно так и fixed. Сначала ставим файу нужный размер, а уже затем пишем содержимое. Еще добавил Lock'и при записи и чтении файлов, а то поток обновляющий изображение на экране успевал прочитать тот мусор, который появлялся при создании файла, но до записи данных качалкой. |
(0003983) Parasite (administrator) 21-09-2011 05:37 |
>ничего улучшить невозможно: большинство тайлов помещаются в один кластер и фрагментироваться не могут никак. Именно что как раз в этом режиме и остаются незаполненные хвосты между концом файла и концом кластера. При этом чем меньше файлы - тем длиннее хвосты, и соответственно больше потеря места на диске. Решение (не сасовское - т.е. по сути костыль): использовать ФС Reiser, оная позволяет писать более 1 файла в один кластер. Грабли: в винде поддерживается лишь слегка больше чем никак - посторонним любительским драйвером, только на чтение, и без учета журнала. :( Ставьте таки ОСЬ в виртуалку, делайте контейнер в оной, и расшаривайте его для САСа по сетке. :) |
(0003985) Tolik (manager) 21-09-2011 05:58 |
> Ставьте таки ОСЬ в виртуалку, делайте контейнер в оной, и расшаривайте его для САСа по сетке А можно чуть более пошаговую инструкцию? |
(0003986) vdemidov (manager) 21-09-2011 06:56 |
Давайте не путать фрагментацию файлов и потери на кластерах. С первым еще как-то можно попробовать бороться, что и сделано, то вот со вторым САС.Планета точно ничего сделать не может это уровень ОС и ФС. |
(0003988) Tolik (manager) 21-09-2011 07:07 |
> САС.Планета точно ничего сделать не может Может-может, но это тема другой хотелки (про кэш в виде БД). |
(0003989) Parasite (administrator) 21-09-2011 08:29 |
>А можно чуть более пошаговую инструкцию? Ну конечно можно! >Давайте не путать фрагментацию файлов и потери на кластерах. С первым еще как-то можно попробовать бороться, что и сделано, то вот со вторым САС.Планета точно ничего сделать не может это уровень ОС и ФС. Так и фрагментация - это тоже уровень ОС и ФС. И даже pre-allocated space не спасет - логически выделенное перед началом записи "монолитное" пространство не обязательно будет таковым на физическом уровне на диске, и чтобы было таки хоть как-то ЧЕСТНО без фрагментации - надо уже после создания файла его тупо дефражить а-ля программа-дефрагментатор, а уж только потом говорить пользователю "Готово, хозяин!". И то гарантии не будет - иногда физически невозможно задефражить большой файл абсолютно без разбиений (например когда своб.места на диске мало). Но это всё, разумеется, бредятина (в плане кодирования в САС). YAGNI. :) >это тема другой хотелки (про кэш в виде БД). (нудно) ...а вот как появятся плагины - так Вы сами сможете прикодить что угодно...! ;) |
(0003990) Tolik (manager) 21-09-2011 10:09 |
Ммммм.... (мечтательно) плагииины... Да и вообще при таком большом количестве маленьких файлов фрагментация ни на что не влияет. Допустим, надо открыть 1000 файлов, из них 100 фрагментирована - состоит из 2-х кластеров. Получается 1100 перемещений считывающей головки вместо 1000 - какая разница? (и это в гипотетическом диске без кэша) |
(0003991) vdemidov (manager) 21-09-2011 10:23 |
Ну мое исправление заняло строк 5 так что не жалко. Но согласен, что толку от него чуть. |
Users who viewed this issue | |
User List | Anonymous (3352x), xyz (1x), reindjer (1x) |
Total Views | 3354 |
Last View | 21-11-2024 09:54 |
Issue History | |||
Date Modified | Username | Field | Change |
14-09-2011 10:31 | xyz | New Issue | |
14-09-2011 10:38 | vdemidov | Note Added: 0003926 | |
14-09-2011 10:38 | vdemidov | Status | new => feedback |
14-09-2011 21:51 | gpsMax | Summary | выделение места под файл перед сохранением => Выделение места под файл перед сохранением |
14-09-2011 21:51 | gpsMax | Description Updated | View Revisions |
14-09-2011 21:53 | gpsMax | Note Added: 0003937 | |
14-09-2011 21:53 | gpsMax | Note Edited: 0003937 | View Revisions |
14-09-2011 21:54 | gpsMax | Tag Attached: тайлы | |
15-09-2011 06:07 | Tolik | Note Added: 0003947 | |
15-09-2011 06:08 | Tolik | Note Edited: 0003947 | View Revisions |
15-09-2011 06:08 | Tolik | Note Edited: 0003947 | View Revisions |
15-09-2011 06:10 | Tolik | Note Edited: 0003947 | View Revisions |
15-09-2011 06:16 | vdemidov | Note Added: 0003948 | |
15-09-2011 06:16 | Tolik | Note Edited: 0003947 | View Revisions |
15-09-2011 06:17 | Tolik | Note Edited: 0003947 | View Revisions |
15-09-2011 06:18 | xyz | Note Added: 0003949 | |
15-09-2011 06:18 | xyz | Status | feedback => new |
15-09-2011 06:18 | Tolik | Note Added: 0003950 | |
15-09-2011 06:22 | Tolik | Note Edited: 0003950 | View Revisions |
15-09-2011 06:23 | Tolik | Note Edited: 0003950 | View Revisions |
15-09-2011 06:24 | vdemidov | Note Added: 0003951 | |
15-09-2011 06:25 | Tolik | Note Edited: 0003950 | View Revisions |
15-09-2011 06:33 | vdemidov | Status | new => feedback |
15-09-2011 07:20 | xyz | Note Added: 0003953 | |
15-09-2011 07:20 | xyz | Status | feedback => new |
15-09-2011 07:28 | xyz | Note Edited: 0003953 | View Revisions |
15-09-2011 07:29 | xyz | Note Edited: 0003953 | View Revisions |
15-09-2011 07:49 | vdemidov | Note Added: 0003954 | |
15-09-2011 07:49 | vdemidov | Status | new => feedback |
15-09-2011 08:07 | xyz | Note Added: 0003955 | |
15-09-2011 08:07 | xyz | Status | feedback => new |
15-09-2011 08:49 | vdemidov | Note Added: 0003956 | |
15-09-2011 08:50 | vdemidov | Note Edited: 0003956 | View Revisions |
15-09-2011 08:50 | vdemidov | Note Revision Dropped: 3956: 0001998 | |
15-09-2011 10:25 | vdemidov | Note Added: 0003957 | |
15-09-2011 11:28 | Tolik | Note Added: 0003960 | |
15-09-2011 11:32 | xyz | Note Added: 0003961 | |
15-09-2011 17:15 | gpsMax | Note Added: 0003967 | |
20-09-2011 08:23 | vdemidov | Status | new => resolved |
20-09-2011 08:23 | vdemidov | Fixed in Version | => 120808 |
20-09-2011 08:23 | vdemidov | Resolution | open => fixed |
20-09-2011 08:23 | vdemidov | Assigned To | => vdemidov |
20-09-2011 08:23 | vdemidov | Product Version | .Nightly => 110418 |
20-09-2011 08:23 | vdemidov | Target Version | => 120808 |
20-09-2011 10:27 | Tolik | Note Added: 0003978 | |
20-09-2011 10:44 | vdemidov | Note Added: 0003979 | |
21-09-2011 05:37 | Parasite | Note Added: 0003983 | |
21-09-2011 05:58 | Tolik | Note Added: 0003985 | |
21-09-2011 06:56 | vdemidov | Note Added: 0003986 | |
21-09-2011 07:07 | Tolik | Note Added: 0003988 | |
21-09-2011 08:29 | Parasite | Note Added: 0003989 | |
21-09-2011 10:09 | Tolik | Note Added: 0003990 | |
21-09-2011 10:23 | vdemidov | Note Added: 0003991 | |
21-09-2011 19:46 | gpsMax | Tag Attached: кэш | |
10-10-2012 11:50 | Tolik | Status | resolved => closed |
My View | View Issues | Change Log | Roadmap | Search |
Copyright © 2007 - 2024 SAS.Planet Team |