|
|
|
| Дали нам в универе лабораторку определить размер кэша первого уровня процессора.
Преподаватель обьяснил решение задачи так. Создаем последовательно матрицы размером 2 кбайта, 4, 8, 16 и т.д. Засекаем время. Складываем каждый элемент матрицы друг с другом. И вроде как только будет большой скачек времени между операциями над этими матрицами, то размер этой матрицы в килобайтах и есть размер кэша процессора. Я засекал это дело тактами процессора, но большого скачка я так и не увидел. Ну в общем у меня не получается ничего.. Может я не правильно что_то делаю или есть другой способ... Помогите, пожалуйста! | |
|
|
|
|
|
|
|
для: MHz
(29.09.2008 в 12:04)
| | Хм... не очень устойчивый метод - для этого нужно, чтобы в фоновом режиме ничего не работало. Попробуйте антивирус снять и вообще побольше резидентов, а вашей задаче назначить максимальный приоритет в диспетчере задач - а ещё назначте задаче лишь одно ядро (если процессор многоядерный - вопрочем, это можно сделать и программно). Кроме того, обязательно создавайте релиз, чтобы никакой отладочной информации в теле программы не было.
PS У вас имеется готовый код? Не можете его выложить, чтобы можно было воспроизвести ситуацию? | |
|
|
|
|
 1.3 Кб |
|
|
для: cheops
(29.09.2008 в 12:32)
| | Да, вот что я пока написал | |
|
|
|
|
|
|
|
для: MHz
(29.09.2008 в 13:46)
| | В общем не получается ниче(
Да и в тактах всеж е это дело считать наверное не стоит... | |
|
|
|