продолжаю разбираться с файлами
))
пытаюсь писать программы что бы пользоваться сразу тем чему научился... вот возникла другая проблема
на сокетах написал простенькую считалку трафика, из потока работающего параллельно основной части программы, я получаю данные, и вот тут я задумался........вернее застрял.
я хочу сохранить данные так что бы я в случае чего мог легко построить например график или показать их за текущий месяц.
Данные можно сохранять с какой то периодичностью, например раз в минут или раз в 5 минут, и при этом можно сделать так что бы данные например сохранялись только за весь день суммарно, или каждый раз отдельно, так что в итоге можно вывести подробную статистику за весь день.
Я думаю решить задачу так: раз в 5 минут сохранять данные, добавляя новую запись, ввиде структуры { число/месяц/год, Inet_in,Inet_Out,Local_in,Locla_out }. и уже дальше что бы отдельный модуль занимался анализом этого файла строил графики и т.д.
я так понимаю, это будет работать достаточно эффективно пока этот файл не разрастется до слишком больших размеров, ведь мне его придется его просматривать от начала и до конца и складывать значения которые я туда пишу каждые 5 минут.
Можно привязать данные к конкретной дате, те постоянно делать операцию:
1) прочитать данные за такое то число
2) если день еще не сменился добавить к этому числу информацию за последние 5 минут и сохранить её.
Как лучше организовать структуру файла ? мне не хотелось бы пользоваться базой данных. Не изобретаю ли я велосипед ? Я так понимаю сбор данных наверно довольно распространенная задача, может кто подскажет, где бы можно было подхватить идеи по сохранению большим объемов информации, хочется предусмотреть возможность сохранения не только локального и интернет трафика но возможно еще какого ни будь например задать правила для местных и не местных сетей что бы считать еще и их, и хочется их потом достаточно быстро вытащить информацию за указанный мной период?
Еще вопрос, непопробывал пока еще memory mapped files, я так понимаю они могут отчасти решить проблему скорости если лог файл будет большим ?