Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Как разрулить “Process out of Memory Exception” в Node.js?
Ошибка “Process out of Memory” возникает при превышении лимита памяти для процесса Node.js. Решить проблему можно с помощью оптимизации кода, управления памятью и увеличения лимита памяти с флагом --max-old-space-size.
Что такое OutOfMemoryError?
OutOfMemoryError возникает, когда программа не может выделить достаточно памяти для выполнения операции. Это может произойти из-за утечек памяти, создания слишком большого количества объектов или ограничений JVM.
Как сделать in-memory репозиторий потокобезопасным и не убить производительность?
Оборачивайте критические секции мьютексом так, чтобы проверка и запись были атомарны. Используйте sync.RWMutex для разделения чтения/записи, избегайте «глобальной» блокировки на всё, если возможно — дробите на более мелкие замки.
Что такое memory layout? Для каких типов важно расположение свойств?
Memory layout описывает, как данные типа располагаются в памяти. Для value типов (например, структур) важно расположение свойств, так как оно влияет на размер и выравнивание. Для reference типов это менее критично, так как они хранятся в куче.
Что такое memory escape analysis и как понять, выделяется ли объект в heap?
Escape analysis решает, где хранить переменную — на стеке или в куче. Если объект “уходит” за пределы функции, он помещается в heap.
Как работает механизм memory barriers и почему Go вставляет их при работе с атомиками?
Какие виды кэша существуют (in-memory, distributed) и чем они отличаются?
Что такое Java Memory Model?
Что такое happens-before в Java Memory Model?
Какие инструменты используются для поиска memory leak в Python?
Рейтинг:
3
Сложность:
8
Memory barriers гарантируют порядок выполнения операций памяти на CPU. Go вставляет барьеры при использовании sync/atomic, чтобы обеспечить корректное happens-before между потоками и предотвратить нежелательную переупорядоченность инструкций.
Рейтинг:
5
Сложность:
5
In-memory кэш хранится в памяти одного приложения и работает очень быстро. Distributed кэш вынесен в отдельный сервис и доступен нескольким приложениям. In-memory проще и быстрее, но плохо масштабируется. Distributed кэш сложнее, но подходит для распределённых систем. Выбор зависит от архитектуры и требований к консистентности данных.
Рейтинг:
5
Сложность:
7
Java Memory Model описывает правила работы потоков с памятью.
Она определяет, когда изменения, сделанные одним потоком, становятся видимыми другим.
Также JMM задает гарантии упорядочивания операций.
Без понимания JMM невозможно писать корректный многопоточный код.
Рейтинг:
5
Сложность:
8
happens-before — это отношение порядка между операциями в Java Memory Model.
Если одна операция happens-before другой, то её результаты гарантированно видны.
Это не обязательно реальный порядок выполнения.
Отношение используется JVM для определения корректности многопоточных программ.
Без него невозможно формально рассуждать о потокобезопасности.
Рейтинг:
4
Сложность:
6
Для поиска утечек памяти используют как встроенные средства Python, так и внешние инструменты. Они помогают сравнивать снимки памяти и находить объекты, которые продолжают удерживаться. Часто анализируют рост памяти под нагрузкой. Важно сочетать инструменты профилирования и реальные сценарии использования. Один инструмент редко даёт полную картину.
Рейтинг:
5
Сложность:
7
Рейтинг:
2
Сложность:
7
Рейтинг:
4
Сложность:
6
Рейтинг:
2
Сложность:
6
Рейтинг:
4
Сложность:
7