Форум программистов, компьютерный форум CyberForum.ru

Как работает кэш? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сложная задача про полный квадрат http://www.cyberforum.ru/cpp-beginners/thread694024.html
Есть 9 разных чисел a,b,c,d,e,f,g,h,i. Сумма любых двух разных чисел из данного ряда является полным квадратом. При этом a+b+c=d+e+f=g+h+i и сумма (a+b+c) должна быть минимальная. Ничего не могу придумать. Помогите пожалуйста. Добавлено через 2 часа 7 минут (извините не правильно условие понял) ИЗМЕНЕННЫЙ ВАРИАНТ: найти произведение целых чисел: a,b,c,d,e,f,g,h,i; таких что...
C++ Нужно найти сколько всего чисел и среднее арифметическое чисел максимального и минимального Помогите найти мне сколько всего чисел и среднее арифметическое чисел максимального и минимального. int main() { setlocale(LC_ALL,""); srand (time(0)); int i; int a; int b; http://www.cyberforum.ru/cpp-beginners/thread693994.html
Вычисление текстовой формулы C++
Есть электронная таблица, в ячейке записано что то типа: =C1+AC234/A1. Для вычисления такой формулы нужно для каждого адреса ячейки (C1, AC234, A1) вызвать метод таблицы calculate('C', 1), calculate('AC', 234), calculate('A', 1). Получить значение типа double и вставить в формулу. Потом всё это надо вычислить... По первой части хочется спросить про аналог регулярных выражений, т.к. нужно...
C++ Найти все натуральные числа от 1 до n, суммы квадратов цифр которых равна самому числу
Найти все натуральные числа от 1 до n, сумма квадратов цифр которых равна самому числу Помогите пожалуйста,или проверьте) #include <iostream> #include <conio.h> #include <math.h> using namespace std; int sum(int c); {int s=0; while c>=1 do s=s+sqr(c fmod 10);
C++ Dev-C++ нашёл ошибку и не компилит( http://www.cyberforum.ru/cpp-beginners/thread693956.html
Здравствуйте. Я пишу всем известную игру Х/О. И я застрял в начале пути из-за того что не могу оприделить ошибку которую мне выдяёт компилятор Dev-C++, конечно легче скачать с интернета чьюто работу и здать, но так ни знаний ни опыта программирования не прибавится. Буду признателен если ктонибудь подскажет в чём тут проблема. P.S если соображу раньше напишу)). #include <iostream> #include...
C++ Не могу создать массив из слов У меня есть путь к файлу который я задаю с консольки, мне надо его преобразовать в обратный типо: ( C:\PP\x.com в x.com\pp\c: ) через strtok я его разбил на под части а вот как , эти части записать в массив слов чтоб сделать реверс я не знаю( #include <stdio.h> #include <string.h> #include <conio.h> #include <fstream> using namespace std; int main(int argc, char * argv) подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1607 / 999 / 118
Регистрация: 27.09.2009
Сообщений: 1,926
Завершенные тесты: 1
10.11.2012, 20:50     Как работает кэш?
В кэш загружаются небольшие куски памяти определённого размера при первом обращении. Этот массив целиком не помещается, а помещаются кусочки по 2 записи, по 32 байта. В первом варианте мы двигаемся по адресам памяти последовательно, переходя от одного элемента строки к следующему, так что промахи происходят только когда мы переходим к новому кусочку. Это происходит потому, что массив устроен как последовательно уложенные строки, в каждой строке последовательно уложены элементы:
1 2 3
4 5 6
7 8 9
уложен в памяти как 1 2 3 4 5 6 7 8 9

Получается, что мы проходим по 128 кусочкам, отсюда соответствующее количество промахов. Во втором варианте мы двигаемся не последовательно, а с зазором и возвратами: 1 4 7 2 5 8 3 6 9.
Поскольку при обращении к каждому новому элементу мы уже вылезаем за пределы предыдущего кусочка, то каждое обращение к новому элементу вызывает промах и необходимость загрузки в кэш нового кусочка. Таким образом, промахи происходят столько же раз, сколько у нас элементов, 256 раз.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru