Size: a a a

2019 December 09

НП

Никита Петроченко... in CODE BLOG / C#
А что за ротация, я так и не понял?
источник

GK

Gennady Kurbesov in CODE BLOG / C#
что бы не забивать всё в один файл - писать в разный
источник

GK

Gennady Kurbesov in CODE BLOG / C#
создавать новый файл по ограничению размера или по дате
источник

НП

Никита Петроченко... in CODE BLOG / C#
Название не совсем подходит, я думаю )
источник

GK

Gennady Kurbesov in CODE BLOG / C#
хз
источник

GK

Gennady Kurbesov in CODE BLOG / C#
но так называют
источник

GK

Gennady Kurbesov in CODE BLOG / C#
даже в линуксах
источник

НП

Никита Петроченко... in CODE BLOG / C#
Ну лан, спорить не буду, в буржуйском не силен
источник

GK

Gennady Kurbesov in CODE BLOG / C#
🤷‍♀️
источник

s.

sauwork . in CODE BLOG / C#
Gennady Kurbesov
решил проверять не по размеру файла ,а по размеру текущего поток. Гораздо лучше 8-9 секунд
нужно просто создать БД , в которой хранить информацию о записях , например файл такой-то записано столькко байт , при следующй записи из текущих данных берем массив байт под свободный лимит  и дописываем его в файл одним махом
источник

s.

sauwork . in CODE BLOG / C#
если пришло 1000 байт , а файл расчитан на 100 байт , тогда просто делим их на 10-ть порций и махом в многопоточности пишем в 10-ть файлов по 100 байт.
источник

s.

sauwork . in CODE BLOG / C#
тут  кол-во обращений к диску сокращается в разы , да и еще все головки задействованы будут т.к параллельная запись идет
источник

s.

sauwork . in CODE BLOG / C#
а у вас там какие-то lock-и , которые только томозят всю процедуру , можно в памяти собирать данные до нужного кол-ва байт и потом один раз писать их.
источник

GK

Gennady Kurbesov in CODE BLOG / C#
локи для того, что бы другие потоки не пытались записать данный в файл в тот момент, когда объект стрима уничтожен для создания нового на новый файл
источник

GK

Gennady Kurbesov in CODE BLOG / C#
синхронизация 👌
источник

НП

Никита Петроченко... in CODE BLOG / C#
sauwork .
а у вас там какие-то lock-и , которые только томозят всю процедуру , можно в памяти собирать данные до нужного кол-ва байт и потом один раз писать их.
а если у тебя несколько потоков создают аналогичные файлы? Первый поток проверит, есть ли там еще память, получит положительный ответ. Второй поток запишет туда еще данные, потом первый поток запишет. Норм, да )
источник

s.

sauwork . in CODE BLOG / C#
ну это потяно , но это все можно оптимизировать на уровне алгоритмов.  НАверняка  мильон обращений каждую милисекунду к диску не нужны
источник

GK

Gennady Kurbesov in CODE BLOG / C#
диски не пишут одновременно несколько файлов, они всё-равно параллельно не производят запись на диск, где вы такое слышали?
источник

GK

Gennady Kurbesov in CODE BLOG / C#
а по поводу локов - если их заменить на мьютексы или мониторы -не думаю, что выиграть в производительности можно на них
источник

НП

Никита Петроченко... in CODE BLOG / C#
Gennady Kurbesov
а по поводу локов - если их заменить на мьютексы или мониторы -не думаю, что выиграть в производительности можно на них
но лок это и есть монитор 😐
источник