Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.30;
Скачать: CL | DM;

Вниз

просьба перечислить возможные варианты записи в память и чтения (   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.053 c
1-1128334065
Ugrael
2005-10-03 14:07
2005.10.30
как вывести в about номер билда ?


14-1129105703
Slider007
2005-10-12 12:28
2005.10.30
Проблема с ICQ траффиком


8-1113670496
Comrade
2005-04-16 20:54
2005.10.30
Яркость, Цвет, Контрастность Видео


1-1128891587
GuAV
2005-10-10 00:59
2005.10.30
Изменение ControlStyle в designtime с соотв. реакцией среды


6-1112328440
TankMan
2005-04-01 08:07
2005.10.30
Пример передачи файла через Socket в режиме stThreadBlocking...