|
1 / 1 / 0
Регистрация: 08.02.2013
Сообщений: 47
|
|
Уникальные элементы в большом списке10.12.2013, 23:52. Показов 8289. Ответов 33
Метки нет (Все метки)
Задача состоит в следующем: есть List<string> в котором 15 миллионов записей. Мне нужно подсчитать сколько раз встречается каждый уникальный элемент и вывести элементы в порядке наибольшего количество повторений до наименьшего.
Делал через LINQ, но с небольшими списками. После того как количество элементов перевалило за 2 миллиона LINQ не тянет. Перебирать циклами очень долго получается. Заранее спасибо.
0
|
|
| 10.12.2013, 23:52 | |
|
Ответы с готовыми решениями:
33
Необходимо вывести уникальные элементы, которые присутствуют и в первом и во втором списке Удалить дубликаты в большом списке данных (около 8млн. строк)
|
|
158 / 187 / 48
Регистрация: 25.11.2013
Сообщений: 978
|
||
| 11.12.2013, 13:41 | ||
|
2. using (var bufferedStream = new BufferedStream(readFile, 1048576)) - Ты не умеешь пользоваться BufferedStream, его использование в твоем коде ничего не дает, можешь его выкинуть из кода, ничего не поменяется. На будущее, используй MemoryMappedFile, это тебе для расширения кругозора; 3. ...альтернатива.. конечно есть, вот она: альтернатива (byte) oktet >> 8; 4. ..а в том что я построчно читаю файл.. без разницы, файл читаешь не ты, а подсистема win, не путай, можешь читать все в одну строку, ничего не поменяется; 5. Словом, ну, ты понял...
0
|
||
|
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
|
|
| 11.12.2013, 14:10 | |
|
Боже мой дай сил разума этому идиоту,
1) я знаю что текстовые файлы бывают большими, очень большими 2) MemoryMapedFile применяеться только для блочного (читай бинарного) чтения файла, а при бинарном чтении ты спокойно можешь разорвать ip адрес и фиг ты его разорваный потом выковыряешь из 2 кусков которые получишь при чтении через MemoryMappedViewStream 3) позвольте поинтересоваться а каким образом вы собираетесь получить 4 октета ip адреса? уж не через Regex? или будете писать свой велосипед разбора бинарного куска? Т. к. мы помним что MemoryMappedViewStream позволяет читать только бинарными блоками или ты думаешь что я про него не знаю? 4) файл конечно читает дисковая подсистема но! и using (var bufferedStream = new BufferedStream(readFile, 1048576)) это именно как раз буферизация чтения файла т. к. я таким формирую кеш в оперативной памяти а не читаю на прямую с диска 5) ну ты понял... иди учись студент, да MSDN с книгами нормально читай я про маппинг файлов знаю еще с WinAPI и WCF если тебе знакомы такие понятия Добавлено через 6 минут P. S. могу сказать лишь одно в конец нашей дискусии, 1) от тебя я так и не увидил не единой строчки кода, либо ссылки на авторитетные источники 2) ты разводишь флейм, а флейм это зло 3) задача TC успешно решена и решина мной а не тобой 4) Вывод ты школьник либо студент + в добавок троль а я тролей кормить считаю ниже своего достоинства за сим откланиваюсь и заношу тебя в бан
0
|
|
|
158 / 187 / 48
Регистрация: 25.11.2013
Сообщений: 978
|
|
| 11.12.2013, 14:16 | |
|
Удачи, удачи, иди, переваривай инфу, сегодня много узнал, отдохни.
0
|
|
|
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
|
|
| 11.12.2013, 14:20 | |
|
тебе хочется свое слово последним оставить да ради бога, свое мнение к тебе я уже показал, думаю минус к репутации тебя также заставит задуматься
1
|
|
|
10 / 25 / 9
Регистрация: 08.12.2013
Сообщений: 115
|
||||||
| 11.12.2013, 16:29 | ||||||
|
не нашел проблемы с Linq, автор темы даже не знает , в чем у него проблема.
Regex, работает очень медленно, именно потому рекомендуют не создавать объект Regex, а пользоваться его статическими членами. Если у тебя проблема с параллельным доступом многих потоков к файлу, то воспользуйся
0
|
||||||
|
1 / 1 / 0
Регистрация: 08.02.2013
Сообщений: 47
|
|
| 11.12.2013, 18:11 [ТС] | |
|
0
|
|
|
158 / 187 / 48
Регистрация: 25.11.2013
Сообщений: 978
|
|||||||
| 12.12.2013, 06:43 | |||||||
Буффер тоже можешь выбросить, равно как и File.OpenRead, достаточно using (var reader = new StreamReader("ip.txt")) (еще и быстрее будет!Ж))) Добавлено через 1 минуту Потом расскажешь, во сколько раз быстрее чтение пошло, полагаю раза в 3...
0
|
|||||||
|
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
|
||||||
| 12.12.2013, 09:22 | ||||||
Добавлено через 2 минуты по этому не обижайся но иди учись писать прикладные программы которые будут адекватно работать в реальных условиях а не только в песочнице в которой их обычно разрабатывают
0
|
||||||
|
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
|
|
| 12.12.2013, 09:24 | |
|
вот забыл прикрутить результаты тестов
0
|
|
|
158 / 187 / 48
Регистрация: 25.11.2013
Сообщений: 978
|
||
| 12.12.2013, 10:14 | ||
|
0
|
||
|
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
|
|
| 12.12.2013, 11:06 | |
|
что твой подход к чтению файла что мой, не показали разницы, время обработки снижалось только при смене функции парсинга ip, а на счет этого читай пост выше, по этому я считаю что наши подходы к чтению файла как минимум равнозначны и твой подход не дает преимуществ, а на счет моего... не знаю может на больших файлах, порядка нескольких десятков ГБ, и будет видна разница в подходах но поверь на тестовом файле я разницы не увидел
Добавлено через 5 минут Как минимум все что ты тут сказал это пустая трата времени, ты дергаешься из-за миллисекунд доступа к файлу и быстроты парсинга ip но о корректности что входных что выходных данных ты не заботишься, и играешься с идеально правильными автосгенерированными данными а главное упускашь из виду, ведь главное решить задачу разбора лога и отсечения дубликатов ip, а вот адекватного ответа по этому вопросу я так и не увидел
0
|
|
|
158 / 187 / 48
Регистрация: 25.11.2013
Сообщений: 978
|
|
| 12.12.2013, 12:20 | |
|
Разница в том, что ты копируешь массив (за кулисами) дважды, причем совершенно бессмыссленно. BufferedStream хороший инструмент, но с ним надо работать, а так втыкать бесполезно, никаких бенефитов не получишь. Более того StreamReader изначально заточен под работу с большими файлами, очень большими, для этого у него есть метод ReadBlock. В данном случае файл небольшой (до 2 Гб), соответственно можно исползовать StreamReader в голом виде, там за кулисами он все делает сам.
PS. Не думай, что мне больше делать нечего, как решать кому-то задачки, у меня и своего кода пруд пруди. Задачки мне некогда решать, а вот подсказать я могу, рекомендую здравую критику воспринимать адекватно.
0
|
|
|
10 / 25 / 9
Регистрация: 08.12.2013
Сообщений: 115
|
|
| 12.12.2013, 13:19 | |
|
0
|
|
|
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
|
|
| 12.12.2013, 16:32 | |
|
В том то и дело что здравой критики у тебя не наблюдается, есть только жалкие потуги на академичность, и упорное долбление своей точки зрения, я же со своей стороны привожу адекватные аргументы которые ты в упор не видишь, и только когда тебя носом тычешь в тесты которые показывают мою правильность решения ты уходишь на попятую, а на счет "мне некогда решать задачки", ведь время переписываться со мной ты нашел
0
|
|
| 12.12.2013, 16:32 | |
|
Не уникальные элементы Уникальные элементы в массиве Уникальные элементы матрицы
Выделить уникальные элементы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|