Форум: "Начинающим";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];
Внизпросьба перечислить возможные варианты записи в память и чтения ( Найти похожие ветки
← →
locki (2005-10-01 13:20) [0]просьба перечислить возможные варианты записи в память и чтения (с подробным обьяснением) - для нахождения самого быстрого...
← →
TUser © (2005-10-01 13:34) [1]Хочешь ускорения работы с памятью - пиши программы так, чтобы обращаться к памяти по как можно более близким друг к другу адресам. Тогда будет использоваться г.о. кэш.
← →
locki (2005-10-01 15:03) [2]народ есть massiv: array of int64
Код:
i:=0;
time:=0;
time1:=0;
time2:=0;
///==================
ProcessID := GetCurrentProcessID;
ProcessHandle := OpenProcess(PROCESS_SET_INFORMATION,false,ProcessID);
SetPriorityClass(ProcessHandle,{NORMAL_PRIORITY_CLASS} REALTIME_PRIORITY_CLASS);
ThreadHandle := GetCurrentThread;
SetThreadPriority(ThreadHandle,{THREAD_PRIORITY_Normal}THREAD_PRIORITY_TIME_CRITICAL);
//===================
//===================
time1:=gettickCount;
for x:=0 to 1000 do
begin
i:=0;
repeat
z:=massiv [i];
z:=massiv[i+1];
z:=massiv[i+2];
z:=massiv[i+3];
z:=massiv[i+4];
z:=massiv[i+5];
z:=massiv[i+6];
z:=massiv[i+7];
z:=massiv[i+8];
z:=massiv[i+9];
z:=massiv[i+10];
z:=massiv[i+11];
z:=massiv[i+12];
z:=massiv[i+13];
z:=massiv[i+14];
z:=massiv[i+15];
z:=massiv[i+16];
z:=massiv[i+17];
z:=massiv[i+18];
z:=massiv[i+19];
z:=massiv[i+20];
z:=massiv[i+21];
z:=massiv[i+22];
z:=massiv[i+23];
z:=massiv[i+24];
z:=massiv[i+25];
z:=massiv[i+26];
z:=massiv[i+27];
z:=massiv[i+28];
z:=massiv[i+29];
z:=massiv[i+30];
z:=massiv[i+31];
z:=massiv[i+32];
z:=massiv[i+33];
z:=massiv[i+34];
z:=massiv[i+35];
z:=massiv[i+36];
z:=massiv[i+37];
z:=massiv[i+38];
z:=massiv[i+39];
z:=massiv[i+40];
z:=massiv[i+41];
z:=massiv[i+42];
z:=massiv[i+43];
z:=massiv[i+44];
z:=massiv[i+45];
z:=massiv[i+46];
z:=massiv[i+47];
z:=massiv[i+48];
z:=massiv[i+49];
z:=massiv[i+50];
z:=massiv[i+51];
z:=massiv[i+52];
z:=massiv[i+53];
z:=massiv[i+54];
z:=massiv[i+55];
z:=massiv[i+56];
z:=massiv[i+57];
z:=massiv[i+58];
z:=massiv[i+59];
z:=massiv[i+60];
z:=massiv[i+61];
z:=massiv[i+62];
z:=massiv[i+63];
z:=massiv[i+64];
z:=massiv[i+65];
z:=massiv[i+66];
z:=massiv[i+67];
z:=massiv[i+68];
z:=massiv[i+69];
z:=massiv[i+70];
z:=massiv[i+71];
z:=massiv[i+72];
z:=massiv[i+73];
z:=massiv[i+74];
z:=massiv[i+75];
z:=massiv[i+76];
z:=massiv[i+77];
z:=massiv[i+78];
z:=massiv[i+79];
z:=massiv[i+80];
z:=massiv[i+81];
z:=massiv[i+82];
z:=massiv[i+83];
z:=massiv[i+84];
z:=massiv[i+85];
z:=massiv[i+86];
z:=massiv[i+87];
z:=massiv[i+88];
z:=massiv[i+89];
z:=massiv[i+90];
z:=massiv[i+91];
z:=massiv[i+92];
z:=massiv[i+93];
z:=massiv[i+94];
z:=massiv[i+95];
z:=massiv[i+96];
z:=massiv[i+97];
z:=massiv[i+98];
z:=massiv[i+99];
z:=massiv[i+100];
z:=massiv[i+101];
z:=massiv[i+102];
z:=massiv[i+103];
z:=massiv[i+104];
z:=massiv[i+105];
z:=massiv[i+106];
z:=massiv[i+107];
z:=massiv[i+108];
z:=massiv[i+109];
z:=massiv[i+110];
z:=massiv[i+111];
z:=massiv[i+112];
z:=massiv[i+113];
z:=massiv[i+114];
z:=massiv[i+115];
z:=massiv[i+116];
z:=massiv[i+117];
z:=massiv[i+118];
z:=massiv[i+119];
z:=massiv[i+120];
z:=massiv[i+121];
z:=massiv[i+122];
z:=massiv[i+123];
z:=massiv[i+124];
z:=massiv[i+125];
z:=massiv[i+126];
z:=massiv[i+127];
inc(i,128);
until i=2097152;
end;
time2:=gettickCount;
time:=time2-time1;
Mem_Res_R:=2000*8000 div time; // 2гига*1000повторений в цикле * на8 (т.к. Int64)байт *На1000 чтобы в секунды
Label38.Caption:="Read block [512 byte]: "+inttostr(Mem_Res_R)+" Mb/sec";
///==================
ProcessID := GetCurrentProcessID;
ProcessHandle := OpenProcess(PROCESS_SET_INFORMATION,false,ProcessID);
SetPriorityClass(ProcessHandle,NORMAL_PRIORITY_CLASS { REALTIME_PRIORITY_CLASS});
ThreadHandle := GetCurrentThread;
SetThreadPriority(ThreadHandle,THREAD_PRIORITY_Normal{THREAD_PRIORITY_TIME_CRITICAL});
//===================
нужно сделать быстрее скорость чтения!!!!!!
← →
cyborg © (2005-10-01 19:29) [3]for i:=Low(massiv) to High(massiv) do
begin
Z:=massiv[i];
end;
← →
locki (2005-10-06 12:38) [4]cyborg © -а ты замерял сколько мег\сек у тебя получается и у меня?
у меня сорость больше...
← →
Anatoly Podgoretsky © (2005-10-06 13:16) [5]
z:=massiv[2097151];
Быстрее этого не будет.
← →
Digitman © (2005-10-06 13:57) [6]А вот вся эта байда с вызовом WinAPI-функций, что фигурирует в приведенном тобой коде, - она с какого боку тут ? Она какое отношение имеет к интересующей тебя проблеме ?
оттого что ты изменил приоритет процесса/трэда ничего равным счетом не изменится. ибо речь ты ведешь, как следует из вопроса, об оптимальном алгоримтме доступа к чему-то там, а не о квантах времени, выделяемых системой кому-то там при том или ином приоритете чего-то там ...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.041 c