Софтуерно Инженерство
Loading...
+ Нов въпрос
dobribozhilov avatar dobribozhilov -8 Точки

Някой тества ли наистина домашното за "колекции и библиотеки" със 100 МВ файл?

Някой има ли да е тествал първата задача от домашното за броене на думи, наистина със 100 МВ файл. Аз успях да намеря "Atlas Shrugged", която в текстов формат е около 3 МВ. Програмата ми ги превърта за около 4 секунди, като за да видя какво прави, ги изкарах не само на конзола, но и в текстов файл (резултатът). Т.е. това е време и за конзола, и за писане във файл. Самия текстов файл излезе 319 КВ :)

При тази скорост, ако от някъде се намери файл 100 МВ, би трябвало да превърти за около 120 секунди :)

Някой има ли подобен тест :)

Тагове:
krach avatar krach 65 Точки

С книгата на Наков за C# на английски копирах няколко пъти една глава докато не ги докарах до ~120 МБ.  Като време за чете на файла ми даде 25 секунди горе долу а резултата сравнително бързо ми го изплю.

Ако някой не му се търси файл в тхт с такива размери пускам линк за самия файл, Архивиран е.

https://drive.google.com/file/d/0B23rvVgQ6kiRTzR0RGVDVHNmQ3M/view?usp=sharing

Ето и линк към кода: https://github.com/krachunov/homeWork7/tree/master/HomeWork7/src

 

EDIT: Сега тествах през Word 2007  да го товроя, каза ми че съм надвишил максималния лимит за страници.

0
19/08/2015 21:36:57
nikola.m.nikolov avatar nikola.m.nikolov 832 Точки

Аз използвах сайта LoremIpsum да генерира малък текст (пробвах да ми генерира 100МБ, но явно имат ограничение...) и го копирах многократно. 100Mb ми ги прочита за 15 секунди заедно с обработката (split и вкарване в речник). Търсенето после става супер бързо, все пак е речник.

0
19/08/2015 21:42:47
dobribozhilov avatar dobribozhilov -8 Точки

При мен този вашия файл го извърта за 12 секунди. Установих обаче друго нещо интересно. Изходният файл този път е само 22 КВ. Т.е. 15 пъти по-малко. Т.е. езикът на Наков е 15 пъти по-беден откъм думи и изрази, от езика на Айн Ранд :)

0
krach avatar krach 65 Точки

И аз го бях направил с HashMap само, че в HashMap бях сложил думите, които търся, като идеята ми беше да не броя весички думи а само търсените. А текста от файла беше в лист. После установих, че така на практика обхождам 2 пъти целия текст (един път да го въвежда в листа и втори път за да намеря търсените думи) и обърнах при чете да записва в HashMap-а а търсените думи в лист. Сега файла 120 МБ го обработва за около 4 секунди +/- а самото търсене е излишно да го коментирам.

Така мисля, че и памет пести понеже не запомня дадена дума "педесет хиляди пъти" в даден лист ами ако открие съвпадение само променя стойността в речника.

0
20/08/2015 09:29:20