0 / 0 / 0
Регистрация: 24.10.2015
Сообщений: 16
|
||||||
1 | ||||||
Многопоточная запись byte[] в файл27.01.2017, 23:46. Показов 2271. Ответов 4
Добрый день, столкнулся с проблемой, массив байт имеет очень большой размер и пишется в файл в данном формате:
0
|
27.01.2017, 23:46 | |
Ответы с готовыми решениями:
4
Многопоточная запись в файл Запись звука в byte[] с помощью NAudio
|
![]() ![]() 12829 / 8854 / 1316
Регистрация: 21.01.2016
Сообщений: 33,172
|
||||||
28.01.2017, 07:05 | 2 | |||||
![]() Решение
NaViSlon, простой тест показывает, что твою задачу (если я её правильно понял) можно ускорить в пять раз (на моём ноуте) просто применив немного фантазии:
Кликните здесь для просмотра всего текста
А если прямо отвечать на твой вопрос, то да: хоть и можно создать файл и задать ему размер (FileStream.SetLength()), поделить массив на части (не обязательно в буквальном смысле) и писать в файл параллельно, но это будет намного медленее, так как накопитель - устройство однопоточное. Может на SSD это и даст прирост, да и то, если не жестить "сотней потоков", но я очень очень сомневаюсь в разумности такого подхода. В общем это сделать можно, но получится только хуже.
1
|
![]() 4602 / 2624 / 721
Регистрация: 02.08.2011
Сообщений: 7,023
|
|
28.01.2017, 07:56 | 3 |
Можно решить проблему не на программном уровне, а аппаратно - объединить два диска в RAID-0 (Stripped Volume).
На работе одно время была задача - ускорить доступ к рабочим виртуальным машинам с SP не изменяя состава hardware. При объединении двух SSD в Stripped Volume скорость чтения и скорость записи уменьшилась в 1.7 - 1.8 раза. Причем это было заметно даже при работе. Правда тут есть потенциальная проблема - при выходе из строя одного из дисков потеряются все данные.
0
|
![]() ![]() 12829 / 8854 / 1316
Регистрация: 21.01.2016
Сообщений: 33,172
|
|
28.01.2017, 07:58 | 4 |
IamRain, ну, в вашем случае вы врядли имели возможность иначе решить вопрос. Тут же явно имеет место неоптимальный код, который можно улучшать-заулучшаться.
0
|
0 / 0 / 0
Регистрация: 24.10.2015
Сообщений: 16
|
|
28.01.2017, 12:42 [ТС] | 5 |
раньше файл в 2 мб писался примерно час, с вашей реализацией файл в 20мб пишется секунд 10, снимаю перед вами шляпу
0
|
28.01.2017, 12:42 | |
Помогаю со студенческими работами здесь
5
преобразование ref byte в byte[] или в IntPtr без использования неуправляемого кода
Пердача byte[] COM-функции, ожидающей ref byte wav byte[] в flac byte[]
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Новые блоги и статьи
![]() |
||||
Winforstrap или красявый дизайн своими руками на HTML+JS+Winforms
anomal6 04.03.2025
Сидел тут вечером ковырял проект на MAUI, и как же глупо создаются пакеты MSIX и система обновлений пакета публикации, но не об этом.
Бывает нужен современный дизайн программы а писать на MAUI,. . .
|
Формат данных для симуляции физики, посредством распространённых не обученных моделей.
Hrethgir 04.03.2025
Что-то как-то снова потерялось, зато катангенсы закатангесились в одном сообщении. На днях писал, что планирую для работы апгрейдить (на этот раз удачно) девайс для работы (конкретно - здоровья для,. . .
|
Концепция variadic
CoderHuligan 04.03.2025
Мне не очень нравится (а кому это нравится?) что у нас есть отдельно компилятор, отдельно линковщик, причем со своим собственным командным языком. При этом усложнении надо знать помимо языка. . .
|
Java Record или Kotlin Data Class: что лучше для неизменяемых данных
Wired 04.03.2025
Java Record и Kotlin Data Class — два мощных инструмента для обуздания неизменяемых структур данных, каждый со своим уникальным подходом к решению этой задачи. История их появления весьма. . .
|
Создание производительных API с Java и gRPC
Wired 04.03.2025
В мире микросервисной разработки вопрос производительности часто становится краеугольным камнем. И хотя REST API давно завоевал сердца разработчиков своей простотой и интуитивностью, при высоких. . .
|
Что нового в JDK 24
Wired 04.03.2025
JDK 24 — это настоящий прорыв в эволюции Java, который кардинально меняет правила игры. В этом релизе разработчики Oracle наконец-то довели до ума множество критически важных улучшений в. . .
|
Разработка блокчейн с использованием Java: смарт-контракты и dApp
Wired 04.03.2025
Погружаясь в мир блокчейн-разработки на Java, разработчик получает доступ к внушительному арсеналу инструментов. В отличие от Solidity, который "заперт" в экосистеме Ethereum, Java предоставляет. . .
|
WebAssembly в Kubernetes
stackOverflow 03.03.2025
В современной экосистеме облачных технологий WebAssembly (Wasm) становится все более значимым компонентом, предлагая уникальный подход к выполнению кода в распределенных системах. Эта технология. . .
|
GitHub Actions или Jenkins: Выбираем CI/CD платформу
stackOverflow 03.03.2025
Непрерывная интеграция и развертывание (CI/ CD) изменили подход к разработке программного обеспечения, превратив его в бесшовный процесс от написания кода до развертывания в продакшн. GitHub Actions и. . .
|
Автоматизация тестирования Pull Request в Kubernetes: Интеграция с GitHub Actions и GKE
stackOverflow 03.03.2025
Масштабные проекты с использованием Kubernetes требуют надежной системы тестирования изменений перед их внедрением в продакшн-среду. Традиционный подход с ручной проверкой Pull Request не справляется. . .
|