8 сентября 2008 г.

A каких файлов больше всего у Вас?

            Мне стало интересно, а каких файлов нынче больше всего у компьютеров.
Вывод к которому я пришел меня удивил. Это файлов весом 0 байт. :) К такому выводу меня привел статистический анализ.
            Я собрал 342125 файлов с 3 компьютеров. Общий вес файлов составил 403 ГБ. В состав этих файлов входило всё: и несколько установок Windows, и инсталяционные файлы, и музыка, и фильмы, и картинки, и дистрибы линукса и т.д.

            После этого занялся статистикой.

            Навороченный SigmaPlot 10.0 (цена лицензии около 1 k$) смог проанализировать первых 66177 значений. :) Excel XP (цена лицензии около 0,2 k$) повел себя ещё хуже. Он согласился анализировать только 65536 значений... :)
Не отказались считать описательную статистику только пакет Statistica 6.0 (цена лицензии около 6 k$) и бесплатная R 2.7.0.

            Был использован для анализа R.
            Вот текст кода:

rm(list=ls(all=TRUE)) #очищаем среду
t1<-Sys.time() #засекаем время
c<-read.table("c:\\i.txt") #читаем данные
d<-as.numeric(c[!is.na(c)]) #переводим в массив
rm(c)
Size<-d[!is.na(d)] #чистим NA ячейки
rm(d)
len<-length(Size) #считаем размер выборки
Size<-sort(Size) #сортируем
summary(Size) #описательная статистика
SizeMB<-Size/1024/1024 #переводим в мегабайты
sd(SizeMB)/sqrt(len)/1024/1024 # SE
hist(SizeMB, ylim=c(0, 200), col=2, breaks=100) #строим график
#text(locator(1),"Отлично виден пик")
#text(locator(1),"в районе 700 МБ.")
#text(locator(1),"Это фильмы.")
length(Size[Size<10*1024])/len*100 #ищем число файлов меньше 100 кб и 1 МБ
length(Size[Size<100*1024])/len*100
median(Size)
hist(Size[1:(len*0.76)]/1024, col=3, breaks=300, xlab="kbytes") #второй график
#text(locator(1),"<5 Кб")
#text(locator(1),"21-22 Кб")
sum(Size[Size<5*1024])/1024/1024 #первый пик
length(Size[Size<5*1024])/len*100
(sum(Size[Size<22*1024])-sum(Size[Size<21*1024]))/1024/1024 #второй пик
(length(Size[Size<22*1024])-length(Size[Size<21*1024]))/len*100
(sum(Size[Size<720*1024*1024])-sum(Size[Size<650*1024*1024]))/1024/1024/1024 #третий пик
(length(Size[Size<720*1024*1024])-length(Size[Size<620*1024*1024]))/len*100
Sys.time()-t1 #останавливаем таймер


            На машине Cel850/256/60 пакет R через 23,5 секунды выдал, что средний файл весит 1,21±0,04 МБ. Минимальный размер файла логично, что составил 0 байт. Максимальный 1,8 ГБ.
Даааа. Тяжело нынче занять компьютер надолго...

            Кроме этого программа успела подсчитать следующее.

            Медиана составила 32557 байт. То есть средний в ряду файл весит именно столько. 50% файлов весят больше него, а 50% меньше.
            94,4% файлов оказалось весят меньше чем 1 МБ.
            76,9% файлов - меньше 100 кБ.
            Пики наблюдались в интервале 0-5 Кб (22% от всех файлов, вес 134 МБ), 21-22 Кб (2% всех файлов, вес 132 МБ) и 620-720 МБ (0,06% от всех файлов, вес 133 ГБ). Легко объяснить пик в районе 700 Мб - это фильмы.

            Статистика позволяет подсчитать количество фильмов на жестком диске. Запросто видно, что фильмов в выборке оказалось около 200 штук. А вот найти пик в районе mp3 записей (2-10 Мб) и картинок (40-500 Кб) не удалось.
            Пик в районе 0-5 Кб тоже объясним, так как самых мелких файликов больше всего, а начинаются они от 0 Кб.

            А вот пик в диапазоне 21-22 Кб непонятен. От соседей он отличается в два с половиной раза.
            20-21 Кб - 0,75% от всех файлов весом 51 МБ.
            21-22 Кб - 1,81% от всех файлов весом 132 МБ.
            22-23 Кб - 0,71% от всех файлов весом 53 МБ.

            Теперь можно сделать выводы.

            Распределение файлов по весу ассиметричное. Больше всего оказалось файлов с минимальным весом. Можно даже сказать, что на компьютерах больше всего файлов с точным весом 0 байт. В моем случае их оказалось 1105.
            А вот наугад взятый файл должен весить несколько килобайт. Скорее всего даже меньше 100 Кб (с вероятностью более 77%). А вот если выбрать случайным образом несколько тысяч файлов, то их вес будет зависеть от среднего значения. То есть от каждых 10 000 файлов следует ожидать, что они будет весить около 12 ГБ.

2 комментария:

Анонимный комментирует...

Забавная стасисистика :) Вот не буду говорить, что ты все это наугад написал. я не такой! :Р Я хуже 8)

Unknown комментирует...

Да, интересно.
Ну, я не стал так изощряться, а просто заглянул в TuneUp Disk Space Explorer 2010.
Из моих 408 ГБ:
Сжатые файлы - 1% (1 330; 5 393 135 КБ);
Документы - 1% (48 321; 5 772 575 КБ);
Изображения - 6% (139 674; 26 432 544 КБ);
Музыка - 15% (10 405; 60 054 145 КБ);
Видео - 26% (841; 104 168 395 КБ);
Другое - 51% (146 317; 206 275 341 КБ).