Shiro Posted November 10, 2004 Share Posted November 10, 2004 Правя един benchmark за линукс и като се поразрових малко открих този интересен факт. Оперативната памет пише няколко пъти по-бързо отколкото чете. На моята машина чете с около 500 MB/s и пише с около 1400 MB/s според cachebench под линукс. Като се разрових из гугъл на много места има статистики на компютри, чиито RAM наитина чете по-бавно отколкото пише. Също така има и много, при които четенето е по-бързо. На един компютър тука aida32 вади 600 MB/s ПИСАНЕ и 1700 MB/s ЧЕТЕНЕ. Искам да знам в крайна сметка кое е по-бързо: четенето или писането в RAM-a. Link to comment Share on other sites More sharing options...
little Posted November 10, 2004 Share Posted November 10, 2004 А това не е ли за раздела "Хардуер" : май пишеш по-бързо от колкото четеш Link to comment Share on other sites More sharing options...
iso14496 Posted November 10, 2004 Share Posted November 10, 2004 Правя един benchmark за линукс и като се поразрових малко открих този интересен факт. Оперативната памет пише няколко пъти по-бързо отколкото чете. На моята машина чете с около 500 MB/s и пише с около 1400 MB/s според cachebench под линукс. Като се разрових из гугъл на много места има статистики на компютри, чиито RAM наитина чете по-бавно отколкото пише. Също така има и много, при които четенето е по-бързо. На един компютър тука aida32 вади 600 MB/s ПИСАНЕ и 1700 MB/s ЧЕТЕНЕ. Искам да знам в крайна сметка кое е по-бързо: четенето или писането в RAM-a. <{POST_SNAPBACK}> По принцип Паметите имат еднаква скорост на четене и запис. Това което наблюдаваш се дължи на кеш паметта. При четене инструкцията блокира докато се извърши истинското им прочитане (дори при суперскаларен процесор не може да се отлага повече от няколко инструкции), докато записа се кешира (освен ако не се ползва специална MMX инструкция). Повторно четене ще покаже огромна скорост. Екпериментирай с различни големини на блоковете. Няколкото нива на кеш правят нещата трудно отличими. Можеш да пробваш и да го изключиш. АА, да най-важното, винаги използвай поне uint32_t (4 байта) и извърършвай четенето/записа на кратни на 4 адреси. Побайтовото и неизравнено четене е около поне 10 пъти по-бавно. MMX копирането е по-бързо защото използа 8 байта наведнъж, а SSE по 16. Ако имаш други въпроси... Питай където трябва. Link to comment Share on other sites More sharing options...
Aquila Posted November 10, 2004 Share Posted November 10, 2004 При мене не е баш еднаква, а точно обратно чете с 1890 Мбайта/с, а записва с 606 Мбайта/с. Защо така. Link to comment Share on other sites More sharing options...
Shiro Posted November 10, 2004 Author Share Posted November 10, 2004 По принцип Паметите имат еднаква скорост на четене и запис.Това което наблюдаваш се дължи на кеш паметта. При четене инструкцията блокира докато се извърши истинското им прочитане Тогава защо AIDA32 вади много по-бързо четене и защо: чете с 1890 Мбайта/с, а записва с 606 Мбайта/с Link to comment Share on other sites More sharing options...
Aquila Posted November 10, 2004 Share Posted November 10, 2004 AIDA32 така казва. Link to comment Share on other sites More sharing options...
Shiro Posted November 10, 2004 Author Share Posted November 10, 2004 Някой би ли направил тест за скорост на рама със SANDRA? (аз съм на линукс) Link to comment Share on other sites More sharing options...
JoroBoy Posted November 10, 2004 Share Posted November 10, 2004 3219/1176 Everest Link to comment Share on other sites More sharing options...
Shiro Posted November 10, 2004 Author Share Posted November 10, 2004 3219/1176 Everes Read/Write ? (bahti, toq tvaq RAM e izrud be:) Link to comment Share on other sites More sharing options...
batko32 Posted November 10, 2004 Share Posted November 10, 2004 Aida32 read2185 write595 ???? Link to comment Share on other sites More sharing options...
JoroBoy Posted November 10, 2004 Share Posted November 10, 2004 Read/Write ?(bahti, toq tvaq RAM e izrud be:) <{POST_SNAPBACK}> Horata otdavna zadminaha 4000 na chetene......moiata si e napravo bavna! Link to comment Share on other sites More sharing options...
Shiro Posted November 10, 2004 Author Share Posted November 10, 2004 Май грешката е била в cachebench. С един друг бенчмарк вадя следното: INTEGER & READING 16384 Kb block: 578.77 Mb/s INTEGER & WRITING 16384 Kb block: 252.29 Mb/s Тъй че .. в RAM-а се пише по-бавно, отколкото се чете оттам Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.