|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.03.2013, 15:51 | #1 |
Пользователь
Регистрация: 01.07.2011
Сообщений: 21
|
Заполнить диск случайными данными
Необходимо записать напрямую на физический диск случайные данные. Диск может не иметь файловой системы.
Пробую таким образом: Код:
Как можно повысить эту скорость? Или же подскажите, как иначе можно программно затереть данные с диска без ФС |
17.03.2013, 17:04 | #2 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Во-первых, Ваша программа НЕ делает требуемого, а именно записи случайных данных.
И мешает ей в этом процедура Randomize, которая переинициализирует ДПСЧ числом, которое отнюдь не является (псевдо)случайным. Randomize нужно вызывать не более одного раза за все время работы программы. Да и Random нужно делать не от 255, а от 256. Но это - не единственный пример того, что внутри цикла Вы делаете работу, которую нужно выносить за пределы цикла. Например, BUF_SIZE внутри цикла не изменяется, так зачем каждый раз переустанавливать длину byteArray? И еще: коль скоро Ваш вопрос не о том, работает программа или нет, а о производительности, то замечу, что для этого в Вашем сообщении недостает много существенно информации. - что собой представляет тот физический диск, на который Вы пытаетесь писать? Каковы его характеристики? - какова величина BUF_SIZE? На второй вопрос: достаточно писать просто нули либо какое угодно другое число. В частности, один раз подготовить буфер с псевдослучайными числами и использовать его без пересчета на каждом шаге. |
17.03.2013, 17:37 | #3 |
Пользователь
Регистрация: 01.07.2011
Сообщений: 21
|
Замечания справделивые, но на производительность лишние действия в цикле оказывают незначительное влияние в данном случае. В отладчике видно, что практически все время уходит именно на запись.
Размер буфера 65536. При уменьшении буфера скорость падает, при увеличении, как и говорил, скорость не меняется. Пробовал на HDD Seagate 120GB, подключение через адаптер SATA-USB. Ан нет, признаю - был не прав. Вынес определение буфера из цикла, и скорость выросла. При буфере 1Мбайт запись на уровне 20Мбайт/сек Последний раз редактировалось VikaR; 17.03.2013 в 17:59. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Заполнить массив из 10 елементов случайными числами | SpENCeR | C++ Builder | 2 | 24.04.2012 20:51 |
Заполнить одномерный массив случайными числами. С++ | JustKaissy | Помощь студентам | 7 | 27.09.2011 11:49 |
Заполнить массив случайными числами. | Fender92 | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 19.03.2011 17:05 |
заполнить массив случайными вещественными числами (C#) | _RaWeN_ | Общие вопросы C/C++ | 2 | 14.03.2011 19:02 |
Заполнить массив случайными числами | forumu | Общие вопросы Delphi | 13 | 03.12.2007 22:11 |