Форум: "WinAPI";
Текущий архив: 2003.09.15;
Скачать: [xml.tar.bz2];
ВнизПередать управление другому процессу Найти похожие ветки
← →
TCrash (2003-07-15 11:05) [0]Написал маленькую тестовую прогу. вот она :
program writetst;
uses sysutils;
type
arr=array[1..1024]of longint;
var
aa: arr;
start,stop: TDateTime;
f: file of arr;
t: text;
i: integer;
begin
for i:=1 to 1024 do aa[i]:=i;
{$I-}
start:=now;
assignfile(f,"test");
rewrite(f);
for i:=1 to 25600 do begin
write(f,aa);
( f)Написал маленькую тестовую прогу. вот она :
program writetst;
uses sysutils;
type
arr=array[1..1024]of longint;
var
aa: arr;
start,stop: TDateTime;
f: file of arr;
t: text;
i: integer;
begin
for i:=1 to 1024 do aa[i]:=i;
{$I-}
start:=now;
assignfile(f,"test");
rewrite(f);
for i:=1 to 25600 do begin
write(f,aa);
// сюда вставлять
end;
close(f);
stop:=now;
assignfile(t,"result");
rewrite(t);
writeln(t,DateTimeTostr(Start));
writeln(t,DateTimeTostr(Stop));
close(t);
{$I+}
end.
в указанное место требуется вставить какую-нить команду для передачи управления ОС, на время, которое будет происходить запись на диск. Какую функцию для этого можно использовать ?
← →
Anatoly Podgoretsky (2003-07-15 11:10) [1]CreateProcess+WaiForSingleProcess
← →
TCrash (2003-07-15 11:15) [2]нет, интересует не это.
нашел функцию Yield, но не уверен, что это подойдет.
Щаз буду пробовать.
← →
Anatoly Podgoretsky (2003-07-15 11:24) [3]Не подойдет
← →
Anatoly Podgoretsky (2003-07-15 11:25) [4]Может тебе пауза нужна, проясни свою мысль.
← →
TCrash (2003-07-15 11:37) [5]получилось то что требовалось, но не так как думалось.
В хелпе написано, что Yield только для 16-ти разрядных задач.
С 32-х разрядной средой эта функция не взаимодействует.
сделал так :
rewrite(f);
for i:=1 to 25600 do begin
write(f,aa);получилось то что требовалось, но не так как думалось.
В хелпе написано, что Yield только для 16-ти разрядных задач.
С 32-х разрядной средой эта функция не взаимодействует.
сделал так :
rewrite(f);
for i:=1 to 25600 do begin
write(f,aa);
Sleep(0);
end;
Sleep определяет на сколько милисекунд заснет thread. Если поставить 0, как я понял из хелпа в своем переводе :-), thread не засыпает а отдает системе ресурсы, оставшиеся от самого thread. Понимаю, пояснение корявое, но работает, а эт главное :-)
← →
TCrash (2003-07-15 12:15) [6]Результаты тестирования обескуражили.
Изначально порграмка писалась для определения, кто быстрее работает с жестким диском.
На компе W2k wks и Win Srv 2003.
Программа по сути только создает на диске 2000 Мб файл.
Так вот собственно результат :
W2k - 0:58
2003 - 5:31
Конфигурация компа :
P4 2,4 / mb Intel / ram 256 DDR
тестирование проводилось на NTFS-разделе
Предлагаю обсудить в "Потрепаться"
← →
Morfein (2003-07-15 12:47) [7]А тут нечего обсуждать... скорость ~34 Мб/с недостижима для обычного hdd (не SCSI)... тем более что это NTFS раздел, на котором наверняка включено сжатие... Всё дело в кэше диска и файловой системы.
Да и потом, что это за метод тестирования? Вы бы ещё по 32 байта за один проход цикла писали... тогда бы время записи всего файла вообще минут двадцать бы было...
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.09.15;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c