|
6 / 6 / 2
Регистрация: 09.02.2016
Сообщений: 138
|
|
Узнать, находится ли в кеше процессора переменная?08.08.2017, 16:44. Показов 3131. Ответов 44
Метки нет (Все метки)
Добрый день.
Есть ли возможность узнать, находится ли в кеше процессора переменная? Время доступа к ней постоянно "пляшет". То быстро, то очень долго, хотелось бы выявить точную причину. gcc 4.8 Добавлено через 47 минут Частично помогло выравнивание структуры. Сократило большую задержку вдвое.
0
|
|
| 08.08.2017, 16:44 | |
|
Ответы с готовыми решениями:
44
Сколько раз находится одна и таже переменная в строчке? Переменная не выводится, если определенная строка находится в теле условия Пустая переменная,как узнать ее значение? |
|
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
|
||
| 16.08.2017, 12:33 | ||
|
0
|
||
|
6 / 6 / 2
Регистрация: 09.02.2016
Сообщений: 138
|
|
| 13.09.2017, 17:54 [ТС] | |
|
Темы не буду плодить, попробую продолжить дискуссию.
Раньше придерживался правила, что лучше создать глобальную переменную 1 раз, чем каждый раз создавать ее в теле какой то функции. Мотивировал это тем, что программа не будет тратить время на ее создание еще раз. А тут пришла мысль. А что если у переменной очень короткий жизненный цикл, то она не создается в памяти? а просто сидит в кеше процессора. Поднял свой код. И запустил 2 одинаковых процесса. Но у одного переменные объявлены глобально в cpp, у другого внутри функции. Переменных не мало. Около 15 по 8 байт. Процесс с локальным объявлением показал гораздо лучше и самое главное - ровнее результаты. Хотелось бы подкрепиться теоретической частью, с чем это связано? Неужели "короткие" переменные не уходят в память?
0
|
|
|
|
|
| 13.09.2017, 20:11 | |
|
Это связано с тем, что компилятор видит всю жизнь локальной переменной и может работать с ней эффективно, в том числе вообще не помещать в память а держать исключительно на регистрах. Про глобальную переменную компилятор не знает ничего и обязан перестраховываться при каждом чихе. Типа того, что
C extern void bar (void); void foo (void) { int x, y; x = 1; bar (); /* В этой точке значение локальной переменной "x" гарантированно равно 1, * т.к. вызов функции bar не мог её изменить. Но если бы x была глобальной, * то таких выводов делать нельзя, т.к. внутри bar могла быть модификация x. * Таким образом, компилятор построит код "y=1", а переменную x удалит * за ненадобностью */ y = x; } Кстати, с кэшем это вообще никаким боком не связано
1
|
|
|
6 / 6 / 2
Регистрация: 09.02.2016
Сообщений: 138
|
||
| 13.09.2017, 21:05 [ТС] | ||
|
0
|
||
| 13.09.2017, 21:05 | |
|
Узнать в какой области видимости объявлена переменная
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|