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

Простая работа с данными

19.01.2018, 14:56. Показов 725. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть программка, которая выдает данные в файл .txt в текстовом формате (в каждой строке 10 чисел через пробел). Эти данные потом могут вводиться в программу для их анализа.
На первых порах было все ок. Но аппетит приходит во время еды. Хочется увеличить объем данных и иметь возможность с ними работать без больших задержек. Файл .txt тормозит уже на вводе в него данных - порядка 50 тысяч строк записывается уже ощутимо "не мгновенно". А если строк (записей) будет миллион или 100 миллионов? как тогда быть?
Можно как-то ускорить работу с файлами (ввод-вывод данных из них)? Например перейти на бинарный формат записи. Или придется неизбежно переходить к БД? Опыта работы с БД нет.
Для определенности, скажем так, что планируется работать примерно с таким объемом данных - от 1 до 100 миллионов записей по 10 чисел.
При этом, желательно, чтобы была возможность анализировать весь объем данных (например, наработанный за год) или отдельные блоки этих данных. Но это не обязательное требование.
Прошу учесть, что вопрос практический и речь идет о следующей итерации улучшения работы с данными - к чему перейти от исходного варианта (запись в тестовом формате в файл .txt), чтобы получить максимальное улучшение при минимальных затратах мозговых усилий.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.01.2018, 14:56
Ответы с готовыми решениями:

Простая работа с таймером
Здравствуйте. Прошу прошения за дилетантский вопрос, но годных примеров по работе с таймеров не нашел. Задача: создать класс таймера,...

DirectShow, простая работа с камерой в реальном времени
Доброго времени суток, форумчане. Столкнулся с задачей по работе с вэб-камерой в реальном времени. Мне необходимо получать от вэб-камеры...

Работа с данными. Как?
Как в .NET можно создать форму типа ленточной в Access.

5
4 / 4 / 2
Регистрация: 08.06.2016
Сообщений: 15
19.01.2018, 15:24
По мне дак с таким числом записи нужно переходить к БД.
Работать с базой легче, чем с файлом (про скорость, стабильность я молчу)

Ну и если работать с БД, то рекомендую посмотреть на Entity Framework даже не нужно вникать, как писать запросы.
1
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,233
19.01.2018, 15:34
Цитата Сообщение от titan4ik Посмотреть сообщение
от 1 до 100 миллионов записей по 10 чисел.
А почему так много данных? Даже в случае с БД, если записей в 2 таблицах более млн (даже ненамного более), то при их join-е уже прочувствуется время выполнения.
Может стоит пересмотреть workflow?
Ну а так да, используйте БД + индексы.
1
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18296 / 14220 / 5368
Регистрация: 17.03.2014
Сообщений: 28,896
Записей в блоге: 1
19.01.2018, 15:43
titan4ik, для начала в самом деле можно попробовать использовать бинарный формат. Это ускорит и чтение и запись. Данные по годам можно разнести по разным файлам.
2
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
19.01.2018, 16:51
titan4ik, мне показалось, или мы говорим об межпроцессорном взаимодействии через ФС? Первый txt файл вообще где-нибудь используется, кроме
вводиться в программу для их анализа
?
Если я прав - предлагаю подумать о более рациональных способах передачи данных из одной программы в другую.
0
Заблокирован
19.01.2018, 23:19  [ТС]
aquaMakc,
ФС - это чё?) Файловая система?
файл данных является и результатом работы и местом хранения данных. Используется потом он блоком обработки (анализа) той же программы. В принципе, можно считать, что это другая программа.
Я не гуглил пока даже вот этот термин "межпроцессорное взаимодействие")

Добавлено через 5 часов 20 минут
Цитата Сообщение от OwenGlendower Посмотреть сообщение
для начала в самом деле можно попробовать использовать бинарный формат. Это ускорит и чтение и запись.
Ок, для начала так и сделаю.
И если делать след шаг - к БД, то что посоветуете?
Критерий - умеренный напряг при освоении при приемлемом качестве. Плюс несложная стыковка с c# VS.
Цитата Сообщение от IamRain Посмотреть сообщение
Даже в случае с БД, если записей в 2 таблицах более млн (даже ненамного более), то при их join-е уже прочувствуется время выполнения.
Да, комп не всесилен. Вероятно придется делать несколько версий наборов данных (преобразовывать) с тем, чтобы одномоментно не нужно было бы обрабатывать много записей. А немного это будет, вероятно, порядка 105- 107 записей. Надеюсь, все-таки, что меньше 106. Нужно подумать над таким "секвестрованием".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.01.2018, 23:19
Помогаю со студенческими работами здесь

Работа с данными исходного файла
Здравствуйте. Помогите с решением следующей задачи. Во входном файле input.txt находится строка, состоящая из N символов. Используются...

Работа с конфиденциальными данными в памяти
Здравствуйте. Есть некие данные которые хранятся на диски в зашифрованном виде. Мне нужна как-то с ними работать (чтение, запись и т. п.)....

Работа с данными структурного типа. Ремонт компьютеров и оргтехники
Для представления данных в памяти описать структуру: Ремонт компьютеров и оргтехники. Наименование группы изделий (компьютер, принтер и...

Работа с файлами(Запись,чтение,работа с данными)
Здравствуйте, никак не могу осилить файлы... Для начала вот само задание: В справочной автовокзала хранится расписание движения автобусов....

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru