Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
1 / 1 / 0
Регистрация: 25.05.2018
Сообщений: 100

Как лучше хранить в большие данные - в переменную, массив или словарь?

18.01.2021, 11:37. Показов 3568. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос , как лучше хранить переменную, объем большой от 200мб может до 1гб доходить и больше - в переменную , массив или словарь(список) ?
А так же почему , это лучше или хуже, вкл. время выполнения(быстродействие) .. В данных будет производится поиск ..

Была мысля использовать переменную типа текстовой, и там производить поиск, типа через IndexOf. Но вот объем данных, потянет ли ...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.01.2021, 11:37
Ответы с готовыми решениями:

.NET: Как лучше - хранить глобальные данные в Application или как static properties класса?
большой Web проект на ASP переводится на .NET. Куча глобальных данных раньше хранилась в Application. Данные типа dropdowlist values, code...

Чем лучше создавать и как хранить большие графы в windows?
Networkx очень удобен, но мешают ограничения и не хватает памяти. graph-tool хвалят, но как я понял нельзя использовать в windows. ...

Где лучше хранить данные (в БД или на диске)?
Доброго времени суток, уважаемые форумчане! Назрел у меня актуальный вопрос: где лучше хранить данные в базе непосредственно или на...

14
Эксперт .NET
 Аватар для Usaga
14313 / 9393 / 1355
Регистрация: 21.01.2016
Сообщений: 35,424
18.01.2021, 11:43
mine1, вопрос бессмысленный. Тип коллекции выбирается исходя с тем, что и как вы с данными собрались делать.

Нужно нормальное описание исходной задачи.
0
1 / 1 / 0
Регистрация: 25.05.2018
Сообщений: 100
18.01.2021, 12:28  [ТС]
Usaga,
Цитата Сообщение от mine1 Посмотреть сообщение
В данных будет производится поиск ..
Это читали , или мало .. задача банально проста , считать данные текст. из файла , вот вопрос куда данные поместить, чтоб потом производить поиск .. А так всё написано , читаем внимательно или полностью..
0
 Аватар для XIST
1961 / 1071 / 148
Регистрация: 01.10.2009
Сообщений: 3,604
Записей в блоге: 1
18.01.2021, 12:30
Цитата Сообщение от mine1 Посмотреть сообщение
читаем внимательно или полностью.
Так же можно и вам порекомендовать.... про книги
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
18.01.2021, 12:34
mine1, вы не указали каким образом будет производиться поиск. По ключу, по тексту ?
Кстати, вы походу не понимаете, раз спросили: "в переменную,массив или словарь". Тут все является переменной.

Добавлено через 56 секунд
mine1, напомните пожалуйста разницу между массивом и словарем.
1
 Аватар для ashsvis
923 / 503 / 202
Регистрация: 08.10.2018
Сообщений: 1,553
Записей в блоге: 11
18.01.2021, 12:35
Цитата Сообщение от mine1 Посмотреть сообщение
В данных будет производится поиск ..
Так зачем всё грузить в память для поиска? Читай понемногу из файла и ищи.
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
18.01.2021, 12:46
Если есть возможность разбить данные на логический список: например у Вас данные, в условном текстовом файле, где информация только про студентов. В таком случае мы можете создать коллекцию студентов.
Если же это монотонный текст, допустим это текст книги, то и в этом случае я бы посоветовал разбивать: например в каждой книге есть страницы, книга из 300 страниц -- 300 страниц в списке.

Если Вы собираетесь хранить данные в одной "переменной"(не учитывая коллекции), а потом делать поиск, то это будет очень долго. Я уверен что в Вашей задаче есть логическое разделение данных, если это 1 ГБ информации

Добавлено через 9 минут
mine1, можете уточнить что Вы считываете?
1
 Аватар для ashsvis
923 / 503 / 202
Регистрация: 08.10.2018
Сообщений: 1,553
Записей в блоге: 11
18.01.2021, 12:54
Что-то вспомнилось про memory mapped files. Вот где есть развернуться с объёмами...
1
1 / 1 / 0
Регистрация: 25.05.2018
Сообщений: 100
18.01.2021, 13:19  [ТС]
Цитата Сообщение от Почтальон Посмотреть сообщение
Кстати, вы походу не понимаете, раз спросили: "в переменную,массив или словарь". Тут все является переменной.
Ну да посл 2 одно и тоже, вроде тот же массив , только посл. как бы обернуть по красивее %))
Просто интересно как лучше искать точнее как, если данными могут быть больше 200иб-500мб-1гб текст ?
P.s. со словарем еще не пробовал _ не практиковался, вот решил попробовать , так что
Цитата Сообщение от Почтальон Посмотреть сообщение
вы не указали каким образом будет производиться поиск. По ключу, по тексту ?
Здесь я нуб скажу сразу..

Просто как бы еще учимся вот и интересно как быть , а вы тут налетели что и как + посылают куда то ...
Тему можно закрыть, разберёмся, сами, налетели коршуны-асы итд...
0
Эксперт .NET
 Аватар для Usaga
14313 / 9393 / 1355
Регистрация: 21.01.2016
Сообщений: 35,424
18.01.2021, 13:23
Цитата Сообщение от mine1 Посмотреть сообщение
Просто интересно как лучше искать точнее как, если данными могут быть больше 200иб-500мб-1гб текст ?
Вы не озвучили что и как собрались искать и зачем.
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
18.01.2021, 13:28
mine1, это нормальная практика. Почтальон, по крайней мере ко мне, был даже более строг, чем к Вам))
Бывало такое что и меня чуть ли не "клевали".
Но могу сказать, что это даже неплохо. Есть форумы где Ваш ответ висит неделями и все проходят мимо. Вам же указали ошибки в поставлении вопроса: нет точной конкретизации какие данные, массив и словарь это и есть переменная.

Я бы посоветовал Вам прислушаться, сделать выводы, на основе выводов исправиться. Тогда у Вас больше шансов получить ответ по сути.
2
1 / 1 / 0
Регистрация: 25.05.2018
Сообщений: 100
18.01.2021, 14:03  [ТС]
limeniye,
Цитата Сообщение от limeniye Посмотреть сообщение
нормальная практика. Почтальон
Есть др. персонажи.. С ним всё ок , чуток объяснил. Я так же попытался объяснить что к чему .

А так я написал же, считать текстовый файл, файл может быть большим в объеме и до 1гб дойти, потом после того как или куда занесли , произвести поиск . Вот вопрос и встал куда занести эти данные - если просто статическая переменная текстовая - можно ли такой объем хранить в виде текста, с массивом понятно.
Данные текстовые, по сути 1 столбик, может быть , то есть если в ListBox то 1 столбец. А вот по кол-ву может дойти и до 10 лям. строчек.

А так тема для новичков, некоторые вопросы могут поставить в тупик по не знанию, или малого опыта. Как то так..

Цитата Сообщение от Usaga Посмотреть сообщение
Вы не озвучили что и как собрались искать и зачем.
Сначала что то искать , надо понять куда лучше поместить, чтоб потом производить поиск..
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
18.01.2021, 14:20
Лучший ответ Сообщение было отмечено mine1 как решение

Решение

Цитата Сообщение от mine1 Посмотреть сообщение
Сначала что то искать , надо понять куда лучше поместить, чтоб потом производить поиск..
самый быстрый поиск у HashSet
1
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
18.01.2021, 14:48
Лучший ответ Сообщение было отмечено mine1 как решение

Решение

Цитата Сообщение от mine1 Посмотреть сообщение
Данные текстовые, по сути 1 столбик, может быть , то есть если в ListBox то 1 столбец. А вот по кол-ву может дойти и до 10 лям. строчек
Что Вы имеете ввиду? В ListBox'е и так всегда один "столбец". В этом и смысл ListBox. Возможно Вы хотели сказать Grid?


Если я вас правильно понял, то у Вас есть около 10 миллионов строк.
Цитата Сообщение от mine1 Посмотреть сообщение
в переменную , массив или словарь(список)
1."в переменную", я так полагаю, Вы имеете ввиду string text.
Максимальный размер объекта String может составлять в памяти 2 ГБ, или около 1 миллиарда символов. Для Вашей задачи это не подходящий вариант да и поиск, в таком случае, будет времязатраным.
2. "массив" -- массивы, зачастую, имеют фиксированный размер, что Вам тоже не подходит.
3. "словарь" -- словарь, в данном случае, на моё мнение, Вам подходит больше всего.
4. КОП подметил, что у множества более высокая скорость поиска, поэтому я бы посоветовал под Вашу задачу использовать именно его.
1
1 / 1 / 0
Регистрация: 25.05.2018
Сообщений: 100
18.01.2021, 15:19  [ТС]
КОП,
Цитата Сообщение от КОП Посмотреть сообщение
самый быстрый поиск у HashSet
ну здесь я так понимаю поиск по хешу чтоль, или что то другое ?
limeniye,
Цитата Сообщение от limeniye Посмотреть сообщение
Максимальный размер объекта String может составлять в памяти 2 ГБ, или около 1 миллиарда символов. Для Вашей задачи это не подходящий вариант да и поиск, в таком случае, будет времязатраным.
Ну была мысля , писал об этом
Цитата Сообщение от mine1 Посмотреть сообщение
Была мысля использовать переменную типа текстовой, и там производить поиск, типа через IndexOf. Но вот объем данных, потянет ли ...
Для меня , как неопытного это был бы самый простой вариант .. Но как вы написали , он не подходит . Что очень жаль как оказалось.
Цитата Сообщение от limeniye Посмотреть сообщение
2. "массив" -- массивы, зачастую, имеют фиксированный размер, что Вам тоже не подходит.
Это да столкнулся как то , про то что массив надо определить размер . А тут как бы динамический будет размер массива, то есть неизвестно кол-во строк..

А так ясно всё , что без мучений , в плане использования "словаря" не обойтись . А в этом еще нуб - нет практики в его использовании еще.

Спасибо , за ответы ..
Тему наверное и вправду теперь можно закрыть ..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.01.2021, 15:19
Помогаю со студенческими работами здесь

где хранить текст файлы? или как хранить данные?
Есть прога простенкая: берет инфу из текстфайла, редактирует и записывает обратно в тхт файл. Нужно сделать так чтобы инфу не смогли читать...

Как лучше закодировать app.config connectionStrings? Или лучше не здесь хранить подключение к бд?
Я знаю, что app.config можно кодировать через консоль или же с помощью...

Где лучше хранить данные, в сессии, или каждый раз вытаскивать из базы по id?
Дело в том, что я делаю магазин и у меня возник вопрос, где все-таки лучше хранить данные для корзины, в массиве, записанном в сессию или в...

Как лучше хранить данные
Имеется клиент и сервер с БД. После авторизации клиент получает данные из БД. Данные приходят в виде текста ( примерно 30 000 строк )....

Как лучше хранить данные
В одной таблице или нет? есть 1) 50мил.строк 2) каждая строка занимает 3кб (т.е. выходит 150гиг база)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru