![]() |
|
Модераторы: bsa |
![]()
|
|
| AlterMann |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 25.10.2006 Репутация: нет Всего: нет |
Доброго времени суток, господа-товарищи.
У меня следующая ситуация. Моделируется определённый процесс... Происходит расчёт по системе диф.уравнений, по большому двумерному полю (массиву - примерно 1000х1000). Состояние меняется каждую 0.01 секунду (в плане мат.модели, сам расчёт - происходит быстрее), весь моделируемый процесс длится около 5 минут. Каждое десятое состояние поля должно сохраняться в файл. Т.е. получается
Так вот, эта самая запись в файл, происходит очень часто... от этого, мягко говоря, "укакивается" винт... и процесс расчёта - замедляется. Мысль, приходящая по этому поводу в голову - буфер. Но! В basic_stream<> уже реализован этот самый (или не этот самый???) буфер, в виде streambuf. Вот только как с ним работать не совсем понятно. Облистался Страуструпом и мануалом по STL. И как-то не поня всё равно :( Может быть вы мне подскажите, реально ли этот streambuf сначачала всё кеширует, а потом суёт в поток, при заполнении буфера? Или же нет - и нужно придумывать что-то своё? Тогда как это своё сделать? Всё засовывать в некий кеш в виде string<double>(1024), а потом этот кеш засовывать в файл?.. Либо же streambuf - на самом деле выступает в роли кеша, но тогда, как ему сказать сколько байт кешировать - увеличить размер кеша, или мб он уже и так большой? Спасибо. Добавлено через 3 минуты и 49 секунд Прошу прощения, что сразу не исправил... всё вроде перечитал, но не заметил такой глупой ошибки...) my_struct - вектор векторов моей структуры, и соответственно обращение к ней, не [i, j], а [i][j]. Это я тут пишу, чтобы совсем за хулигана не сойти) По форуму тоже искал - ничего не нашёл. |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Все кэшируется автоматически, причем на многих уровнях
|
|||
|
||||
| AlterMann |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 25.10.2006 Репутация: нет Всего: нет |
файл, получается порядка полтора-два гигабайта, а выполняется всё на "несильных" линуксовых машинах.
|
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
О!
|
||||
|
|||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |