powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Запись во множество файлов
7 сообщений из 32, страница 2 из 2
Запись во множество файлов
    #38653325
ldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нахлобуч, интересно конечно, надо подумать.
...
Рейтинг: 0 / 0
Запись во множество файлов
    #38653664
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиНо зачем хранить данные с датчиков? так часто.

Это данные с датчиков БАК! Реже нельзя, бозон Хиггса не поймаем!
...
Рейтинг: 0 / 0
Запись во множество файлов
    #38653719
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВГде-то в степиНо зачем хранить данные с датчиков? так часто.

Это данные с датчиков БАК! Реже нельзя, бозон Хиггса не поймаем!
А, так вот почему скорость света как бы превысили.... Гарбадж коллектор в этот момент подметать начал....
:-)
...
Рейтинг: 0 / 0
Запись во множество файлов
    #38653742
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ldarНахлобучБаза данных, например?

Вообще, не хватает информация. Что за данные пишутся, кто пишет, кто читает, как долго читает...
Как раз пишу логику в замен базы данных, чтоб оптимизировать ресурсы.
Данные это показания с промышленных датчиков, 1000 уникальных датчиков с дискретностью 500ms, под каждый датчик файл. Читает эти файлы другой поток.
Сейчас придумал кое что, держу массив с открытыми файлами.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
FileStream[] f= new FileStream[1000];
                for(int g=0; g<3000;g++) 
                {
                    l = g % 1000;
                    if(f[l]==null)
                        f[l]= new FileStream("file"+l, FileMode.Append, FileAccess.Write, FileShare.ReadWrite | FileShare.Delete | FileShare.Read | FileShare.Write);
                    Serializer.Serialize(f[l], aa);
                    f[l].Flush();
                }



Уже лучше 600 мс, нов се равно много.

1) Зачем вам сериализация? Напрямую массивы не записать?
2) Где Dispose FileStream?
3) Если диск один - параллелизация записи вам не поможет, только последовательный перебор
4) Я не понял, в каждый файл данные дописываются или перезаписываются? По коду - перезаписывается.
5) Рассмотрите вопрос о Shared Memory.
...
Рейтинг: 0 / 0
Запись во множество файлов
    #38653845
ldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЕвгенийВГде-то в степиНо зачем хранить данные с датчиков? так часто.

Это данные с датчиков БАК! Реже нельзя, бозон Хиггса не поймаем!
:)
500мс еще ладно, на одном форуме АСУТП кто то интересовался чтоб архивировать с дискретностью 1 мс.

На а на продакшене скорей всего дискретность 500мс будет не у всех тегов, будет подбираться индивидуально по назначению, просто прорабатываю под максимальную нагрузку.
...
Рейтинг: 0 / 0
Запись во множество файлов
    #38653846
ldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79,
переписал под BinaryWrite время стало 30 мс, это уже гуд.
Где вы увидели что перезаписывается? А FileMode.Append?
...
Рейтинг: 0 / 0
Запись во множество файлов
    #38653868
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ldarГде вы увидели что перезаписывается? А FileMode.Append?
Да, точно, не обратил внимание. Но все равно, рассмотрите возможность использования Shared Memory, если 30 мс не до конца устроят.
...
Рейтинг: 0 / 0
7 сообщений из 32, страница 2 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Запись во множество файлов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]