Рубрика «память»

Мы публикуем конспект вступительной лекции видеокурса «Бэкенд-разработка на Python». В ней Егор Овчаренко egorovcharenko, тимлид в Яндекс.Такси, рассказал о внутреннем устройстве интерпретатора CPython.

— Если кратко, какой у нас будет план? Сначала мы поговорим о том, почему будем изучать именно Python. Затем посмотрим, как работает интерпретатор CPython более глубоко, как он управляет памятью, как устроена система типов в Python, на словари, генераторы и исключения. Я думаю, это займет примерно час.
Читать полностью »

Сегодня я собираюсь поговорить про адресацию памяти: один, казалось бы, небольшой, и тем не менее удивительно непростой элемент семантики команд архитектуры х86_64. В особенности хочется поговорить про команду mov и то, как через только одну эту команду х86_64 пользователю становятся доступны различные методы адресации памяти.

Я не буду говорить про остальные затрагивающие память команды (то есть, благодаря CISC, почти все остальные), команды которые пишут массивные фрагменты памяти (это о тебе, fxsave), или иные касающиеся темы вопросы (модели кода, независящий от адреса код, и бинарная релокация). Я также не буду затрагивать исторические режимы адресации или режимы, которые активны при работе процессора x86_64 не в 64-битном режиме (т.е. любые отличные от long mode с 64-битным кодом).

Некоторые ограничения

Несмотря на кошмарное наследие кодирования команд х86_64, а может и благодаря ему, у адресации памяти есть некоторые ограничения.

Начнем с хорошего:

  • На достаточно высоком уровне в архитектуре х86_64 есть всего два режима адресации.
  • Все регистры в обоих режимах адресации должны быть строго одинакового размера. Другими словами, мы не можем странным образом смешивать 64, 32 и 16-битные регистры и получать актуальный адрес — в кодировании х86_64 для подобного маневра попросту нет места.

Читать полностью »

Рассказывать начинающим инженерам истории о том, как ты когда-то серьёзно облажался – это хороший способ помочь им бороться с синдромом самозванца.

Это был, наверное, 1984-1985 год. Тогда я был 25-летним подающим надежды программистом с пятилетним стажем. Я и ещё один программист писали и поддерживали набор приложений, похожих на сегодняшний Office: электронные таблицы, текстовый процессор, база данных, плоттер и т.п. Мы настраивали всю эту систему для трёх-четырёх вертикальных рынков [бизнес-клиентов узкоспециальной направленности / прим. перев.].

Большую часть текстового процессора писал я сам. Писал я на Форте, и для различных вариантов комбинаций операционок и процессоров. Молодёжи невдомёк, но в те времена новые микрокомпьютеры со своей особой ОС и одним из нескольких вариантов процессоров выходили раз в несколько месяцев.

Форт использовал обмен блочными данными с диском. Каждый блок имел длину в 1 кб, и чтобы сохранить что-нибудь больше 1 кб, нужно было работать с мастер-блоком файла, где хранились смещения всех блоков с данными – по сути, это была пара списков, занятых и незанятых блоков.
Читать полностью »

Жизнь байта данных - 1

Любой облачный провайдер предлагает услугу хранения данных. Это могут быть холодные и горячие хранилища, Ice-cold, и т.д. В облаке хранить информацию довольно удобно. Но как вообще хранили данные 10, 20, 50 лет назад? Cloud4Y перевёл интересную статью, рассказывающую как раз об этом.Читать полностью »

Архивы памяти: как мозг кодирует и воспроизводит воспоминания - 1

С одной стороны мозг человека достаточно понятен, с другой — полон загадок и вопросов, на которые пока нет ответов. И тут все логично, учитывая, что данная система чрезвычайно сложна как с точки зрения архитектуры, так и с точки зрения протекающих процессов и связи между ними. Если по классике сравнивать мозг с компьютером, то помимо обработки информации, он выполняет и ее хранение. Любое воспоминание изымается из архивов памяти под влиянием какого-то стимула: знакомый аромат, мелодия, слова и т.д. Однако остается вопрос — где этот архив и что способствует его открытию? Ученые из NINDS (Национальный институт неврологических расстройств и инсульта) изучили мозг пациентов, больных устойчивой к препаратам эпилепсией, чтобы выявить и попытаться объяснить механизмы извлечения воспоминаний. Так как же мы вспоминаем, что происходит в мозге в этот момент и почему исследование проводилось с участием больных эпилепсией? Об этом мы узнаем из доклада ученых. Поехали.Читать полностью »

image

Мозг — мой давний сосед. Учитывая то, сколько времени мы провели, и сколько нам еще предстоит быть вместе, не интересоваться им — полнейшая бестактность.

Ходишь с черным ящиком внутри черепной коробки, и этот ящик понимает, что он сам себе дает такое описание. Это же очень любопытно. Если бы мне дали железку с такими возможностями, я бы все свободное время убил на то, чтобы понять, как она работает. Собственно, я и убиваю. Объект исследования всегда при мне — очень удобно. Жаль только, внутри покопаться нельзя.

Мозг записывает и обрабатывает информацию. Но как? Почему что-то хранится долго, а что-то забывается за пару дней? Как это связано с нейронами?

Можно ли, основываясь на информации из нейробиологии, построить модель мозга дающую похожее на реальный мозг поведение?

А что гадать? Давайте просто попробуем.
Читать полностью »

Недавно поучаствовал в дискуссии на тему влияния на производительность указания длины в столбцах с типом nvarchar. Доводы были разумны у обеих сторон и поскольку у меня было свободное время, решил немного потестировать. Результатом стал этот пост.

Спойлер – не всё так однозначно.

Все тесты проводились на SQL Server 2014 Developer Edition, примерно такие же результаты были получены и на SQL Server 2016 (с небольшими отличиями). Описанное ниже должно быть актуально для SQL Server 2005-2016 (а в 2017/2019 требуется тестирование, поскольку там появились Adaptive Memory Grants, которые могут несколько исправить положение).

Нам понадобятся – хранимая процедура от Erik Darling sp_pressure_detector, которая позволяет получить множество информации о текущем состоянии системы и SQL Query Stress – очень крутая open-source утилита Adam Machanic/Erik Ejlskov Jensen для нагрузочного тестирования MS SQL Server.

О чём вообще речь

Вопрос, на который я стараюсь ответить – влияет ли на производительность выбор длины поля (n)varchar (далее везде просто varchar, хотя всё актуально и для nvarchar), или можно использовать varchar(max) и не париться, поскольку если длина строки < 8000 (4000 для nvarchar) символов, то varchar(max) и varchar(N) хранятся IN-ROW.
Читать полностью »

Несколько недель назад в разговоре за обедом коллега пожаловался на какой-то медленный процесс. Он подсчитал количество сгенерированных байт, количество циклов обработки, и в конечном счёте, объём оперативной памяти. Коллега заявил, что современный GPU с пропускной способностью памяти более 500 ГБ/с съел бы его задачу и не подавился.

Мне показалось, что это интересный подход. Лично я раньше не оценивал задачи производительности с такой стороны. Да, я знаю о разнице в производительности процессора и памяти.

Измеряем на коленке пропускную способность памяти - 1

Я знаю, как писать код, который активно использует кэш. Знаю примерые цифры задержки. Но этого недостаточно, чтобы сходу оценить пропускную способность памяти.
Читать полностью »

Начальные условия

Есть устройство на базе микроконтроллера (для примера будет взят stm32f405rgt6). При включении оно настраивает свою периферию на основе предпочтений пользователя или настроек по-умолчанию. Пользователь может менять настройки во время работы устройства (как правило, только во время интеграции в комплекс) через один из возможных интерфейсов (CLI меню или утилита установки параметров работы, работающая через бинарный протокол). После установки параметров пользователь сохраняет настройки специальной командой (так же через один из возможных интерфейсов).
Читать полностью »

Мнемотехника: исследуем методы увеличения памяти мозга - 1

Хорошая память нередко является врожденной особенностью некоторых людей. И потому нет смысла соревноваться с генетическими «мутантами», изматывать себя тренировками, включающими запоминание стихотворений и придумывание ассоциативных историй. Раз все записано в геноме, выше головы не прыгнешь.

Действительно, строить, как Шерлок, дворцы памяти и визуализировать любую последовательность информации не каждому дано. Если вы перепробовали основные приемы, перечисленные в статье по мнемонике в Википедии, и у вас ничего не получилось, то ничего страшного в этом нет — техники запоминания для перегруженного работой мозга становятся сверхзадачей.

Однако не все так плохо. Научные исследования показывают[1], что некоторые мнемотехники буквально физически могут поменять структуру мозга и повысить скилл управления памятью. Многие из самых успешных в мире мнемонистов, участвующих в профессиональных соревнованиях по запоминанию, начинали учиться уже в зрелом возрасте, и им удалось значительно усилить возможности мозга.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js