Некоторое время назад я написал несколько статей о различных трюках, применявшихся в операционной системе DOS, чтобы вписаться в те жёсткие лимиты памяти, которые действовали в реальном режиме на архитектуре x86. Постоянно возникал и оставался без ответа один вопрос: а каковы были различные «модели», которые предлагались компиляторами тех времён? Взгляните, как выглядело меню для генерации кода в Borland Turbo C++:
Рубрика «timeweb_статьи_перевод»
Ещё раз о моделях памяти, применявшихся в DOS
2025-02-08 в 8:05, admin, рубрики: 8086, borland, c++, dos, exe, microsoft, timeweb_статьи_перевод, x86, ОЗУОптимизация кольцевого буфера для повышения пропускной способности
2024-12-28 в 10:10, admin, рубрики: amd, linux, MESI, SPSC, timeweb_статьи_перевод, TLB, буфер, ядроВ этой статье мы рассмотрим классический конкурентный кольцевой буфер и обсудим, как его можно оптимизировать для повышения производительности. Я покажу вам, как существенно улучшить этот показатель от 5,5 миллионов элементов в секунду до 112 миллионов элементов в секунду — и эти показатели выше, чем в реализациях Boost и Folly. Если вам требуется готовая реализация со всеми этими оптимизациями, посмотрите мою библиотеку SPSCQueue.h.
Вычисления с GPU-ускорением на Python
2024-10-26 в 8:05, admin, рубрики: c++, cpu, CUDA, gpu, Nvidia, pycuda, python, timeweb_статьи_перевод, Процессоры50 терминов системного дизайна, которые должен знать каждый разработчик
2024-09-30 в 8:05, admin, рубрики: devops, system architecture, system design, timeweb_статьи_перевод, проектирование систем, системная архитектура, системный дизайн
1. Масштабируемость / Scalability
- Масштабируемость — это способность системы поддерживать возросшую нагрузку путем добавления дополнительных ресурсов
- Примером является добавление дополнительных серверов для обработки увеличившегося веб-траффика
- Что такое масштабируемость и как ее достичь?
2. Балансировка нагрузки / Load Balancing
- Балансировка нагрузки — это разделение входящего сетевого траффика между несколькими серверами для снижения нагрузки на каждый из них (во избежание того, чтобы на один сервер приходилось слишком много траффика)
- Примером является распределение веб-траффика между несколькими экземплярами EC2 с помощью сервиса AWS Elastic Load Balancer (ELB)
- Понимание балансировки нагрузки
Шаблоны для эффективной работы с DOM с помощью современного чистого JavaScript
2024-09-15 в 8:05, admin, рубрики: document object model, dom, javascript, memory, timeweb_статьи_перевод, объектная модель документа, память
В этой статье мы познакомимся с эффективными приемами работы с DOM, которые помогут минимизировать потребление памяти и обеспечить высокую производительность ваших приложений.
Как уменьшить образ Docker для работы с устройствами IoT
2024-09-12 в 7:55, admin, рубрики: docker, elf, fortran, Guix, home assistant, IoT, linux, nix, Raspberry Pi, timeweb_статьи_переводНа устройствах интернета вещей (IoT) зачастую слишком мало ресурсов, и их не хватает, чтобы подтягивать и использовать тяжеловесные образы Docker. В этой статье будет показано, как можно уменьшить образ Docker на 36-91% при помощи инструментов patchelf
и strace
, не перекомпилируя при этом контейнеризованные приложения. Также рассмотрим, как создавать минимальные образы для собственных приложений, написанных на Rust, Go, C/C++.
❯ Зачем уменьшать образ Docker?
Как Linux создаёт и подсчитывает сокеты
2024-09-07 в 8:05, admin, рубрики: linux, tcp, timeweb_статьи_перевод, udp, UNIX, веб-сервер, Сетевые технологии, сокеты, ядроПривет!
Если у вас уже есть некоторый опыт работы с веб-серверами, то вам наверняка доводилось попадать в классическую ситуацию «адрес уже используется» (EADDRINUSE).
В этой статье будут подробно разобраны не только предпосылки, позволяющие судить, случится ли в ближайшей перспективе такая ситуация (для этого достаточно просмотреть список открытых сокетов), но и будет рассказано, как можно прослеживать конкретные пути кода в ядре (где происходит такая проверка).
Если вам просто интересно, как именно работает системный вызов socket(2)Читать полностью »
Из истории технологий: откуда взялся Unix
2024-08-31 в 8:05, admin, рубрики: BASIC, Bell Labs, linux, multics, timeweb_статьи_перевод, UNIX, Кен Томпсон, код, ОС, ПрограммированиеСегодня многие полагают, что «Unix» и «Linux» — это одно и то же. Но по состоянию на 2024 год с большинством дистрибутивов, которые мы причисляем к «Unix» и «Linux» ситуация почти так и обстоит.
Но у Unix долгая история. Если у вас в распоряжении только известные сейчас системы Linux, то сложно размышлять о том «какова была ситуация на заре Unix», поскольку так много с тех пор изменилось.
❯ От прототипа до Unix
Сделаем шаг назад и рассмотрим, с чего начинался Unix. В 1969 году Кен Томпсон, сотрудник-исследователь из лаборатории «Bell Labs» экспериментировал в области проектирования операционных систем.
Запросы и лимиты в Kubernetes: разбираемся в деталях
2024-08-10 в 8:05, admin, рубрики: cpu, kubernetes, OOMKill, resources, timeweb_статьи_перевод, троттлинг в kubernetes, фичиС другой стороны, если вы постоянно лишаете контейнер минимального объёма ресурсов, который нужен ему для корректной работы, то словно постоянно не подпускаете ваших детей к сладостям. Контейнер будет влачить жалкое существование и работать вполсилы.
Учимся летать: симуляция эволюции на Rust. 4-5
2024-06-26 в 14:05, admin, рубрики: algorithms, evolution, genetic algorithms, neural networks, Rust, timeweb_статьи_перевод, генетические алгоритмы, нейронные сети, эволюция
Это предпоследняя часть серии статей по разработке симуляции эволюции с помощью нейронной сети и генетического алгоритма.
В сегодняшнем выпуске:
Сексуальные многоугольники
Сертифицированные ISO диаграммы ASCII
------------
| ...%....|
| ......|
| @>....|
| ...|
| .|
------------
Клевые числа