ayazer: у меня стандартная реализация GZip в .NET. Создавая GZipStream можно выбрать либо режим [compress/decompress] либо уровень [Optimal, Fastest, не сжимать]. я использую режимы. Попробую конечно попробовать Fastest. Еще дело в том, что в данной задаче надо использовать именно GZip из пространства System.IO.Compression. Не иначе. На данном этапе прога при работе с файлом 1.2гб вылетает с исключением из-за недостатка памяти, но это мой косяк, т.к. у меня кривая реализация запуска потоков.
ayazer: переписал алгоритм программы. Теперь на каждом шагу стоит Collect, но память что равно освобождается долго и так в раскачку 200-400-500-200-100. Из-за этого не могу запустить другие такие же потоки на выполнение.
ayazer: на счет сжатых данных которые весят больше. Да, возможно для сжатия требуется доп. память. Но, у меня и на выходе получается "сжатый" файл в 131мб. Тестировал на pdf файле. Для изображений он с 800кб сжимает до 240кб.
Станислав Силин: можно сделать все это в одном методе и без использования буфера. Но моем случае критически важно где-то хранить эти куски данных в виде буфера, потому что если придет большой файл, все это нужно будет распараллеливать. Читать-обрабатывать-записывать файл придется по кускам в 150-200 мб, чтобы максимально нагрузить проц, оперативку и диск.
Станислав Силин: вот и я тоже думаю, что статические не при чем. свободной памяти ну на пике прожорливости приложения ну уровне 500мб, не больше, возможно даже меньше, ибо FF + VS15 Debbuging + система + подкачка 700мб = остается свободной около 500 мб. Но я заметил, что это критический уровень. Т.е. я не разу не видел, чтобы система не оставила в резерве эти 500мб.
Есть тысячи таких вопросов. Я просто догнать не могу. Есть контекст EF. Если в базе произошел Insert то вызывается метод с телом DataGridView.DataSource = ctx.MyObjects.ToList() и тут все срабатывает, но это для другого DataGrid`а. И все работает. Еще один DataGrid сделан по тому же принципу. Но тот, который меня интересует, не хочет работать с локальной коллекцией. Задействовал BindingSource. Ситуация не поменялась. Я давно не работал с WinForms, по этому спрашиваю тут. Может есть какой-то метод а-ля RenderViewWithNewData