Архив за 16 июня 2020

Буквально два назад мы писали о том, что Samsung готовится выпустить первый смартфон с панелью AMOLED стороннего производителя. Моделью этой должен был бы стать Galaxy M41, а поставщиком экрана для него — CSOT, принадлежащая TCL.

Месяц назад я попытался сосчитать, сколько разных инструкций поддерживается современными процессорами, и насчитал 945 в Ice Lake. Комментаторы затронули интересный вопрос: какая часть всего этого разнообразия реально используется компиляторами? Например, некто Pepijn de Vos в 2016 подсчитал, сколько разных инструкций задействовано в бинарниках у него в /usr/bin, и насчитал 411 — т.е. примерно треть всех инструкций x86_64, существовавших на тот момент, не использовались ни в одной из стандартных программ в его ОС. Другая любопытная его находка — что код для x86_64 на треть состоит из инструкций mov. (В общем-то известно, что одних инструкций mov достаточно, чтобы написать любую программу.)

Я решил развить исследование de Vos, взяв в качестве «эталонного кода» компилятор LLVM/Clang. У него сразу несколько преимуществ перед содержимым /usr/bin неназванной версии неназванной ОС:

  1. С ним удобно работать: это один огромный бинарник, по размеру сопоставимый со всем содержимым /usr/bin среднестатистического линукса;
  2. Он позволяет сравнить разные ISA: на releases.llvm.org/download.html доступны официальные бинарники для x86, ARM, SPARC, MIPS и PowerPC;
  3. Он позволяет отследить исторические тренды: официальные бинарники доступны для всех релизов начиная с 2003;
  4. Наконец, в исследовании компиляторов логично использовать компилятор и в качестве подопытного объекта :-)

Начну со статистики по мартовскому релизу LLVM 10.0:

ISA Размер бинарника Размер секции .text Общее число инструкций Число разных инструкций
AArch64   97 МБ 74 МБ 13,814,975 195
ARMv7A 101 МБ 80 МБ 15,621,010 308
i386 106 МБ 88 МБ 20,138,657 122
PowerPC64LE 108 МБ 89 МБ 17,208,502 288
SPARCv9 129 МБ 105 МБ 19,993,362 122
x86_64 107 МБ 87 МБ 15,281,299 203

В прошлом топике комментаторы упомянули, что самый компактный код у них получается для SPARC. Здесь же видим, что бинарник для AArch64 оказывается на треть меньше что по размеру, что по общему числу инструкций.

А вот распределение по числу инструкций:
Сколько инструкций процессора использует компилятор? - 1 Сколько инструкций процессора использует компилятор? - 2 Сколько инструкций процессора использует компилятор? - 3 Сколько инструкций процессора использует компилятор? - 4 Сколько инструкций процессора использует компилятор? - 5 Сколько инструкций процессора использует компилятор? - 6Читать полностью »

Оказалось, что корпуса PlayStation 5 и её аксессуаров частично покрыты крошечными символами. Они хорошо знакомы очень многим - 1
Читать полностью »

Пока многие родители продолжают считать, что видеоигры — это зло, которое только и делает, что разрушает мозги их детей, в мире появилась первая игра, приравненная к лекарству.

И это не шутка. EndeavorRX от студии Akili Interactive стала первой игрой, которую Управление по санитарному надзору за качеством пищевых продуктов и медикаментов США (FDA) разрешило использовать в качестве рецептурного лечения при синдроме дефицита внимания и гиперактивности (СДВГ) для детей в возрасте от 8 до 12 лет.

Мой брат недавно отучился на компьютерщика и сейчас завершает стажировку в области фронтенд-разработки. Он узнал и о CSS Grid, и о CSS Flexbox, но в том, как он пользуется этими механизмами создания макетов, я отметил одну особенность, с которой я уже сталкивался. А именно, ему тяжело даётся принятие решений о том, когда использовать Grid, а когда — Flexbox. Например, он использовал CSS Grid для создания макета заголовка сайта. При этом он отметил, что довести проект до ума ему было нелегко, и что ему пришлось долго экспериментировать с grid-column и настраивать всё до тех пор, пока у него не получилось то, что ему было нужно.

Использование Grid для макетов страниц, а Flexbox — для макетов компонентов - 1

Честно говоря, мне это не понравилось. Поэтому я решил поискать какой-нибудь ресурс, который помог бы моему брату как следует уяснить различия между Grid и Flexbox и дал бы возможность взглянуть на примеры, созданные с использованием обеих этих технологий. Но ничего подходящего мне найти не удалось. Тогда я решил написать статью, посвящённую Grid и Flexbox. Надеюсь, она получилась понятной.
Читать полностью »

На прошлой неделе компания Sony не только показала финальный дизайн консоли PlayStation 5, но также анонсировала аксессуары для приставки, которые остались без нашего внимания. Информации о них немного, но кое-что мы уже знаем.

На прошлой неделе компания Sony не только показала финальный дизайн консоли PlayStation 5, но также анонсировала аксессуары для приставки, которые остались без нашего внимания. Информации о них немного, но кое-что мы уже знаем.

Деятельность компании Apple стала предметом двух антимонопольных расследований, инициированных в ЕС. Европейские антимонопольщики решили выяснить, не нарушает ли американская компания правила честной конкуренции в магазине приложений App Store и платежном сервисе Apple Pay. У них возникли подозрения, что Apple блокирует конкурентов.

Европейская комиссия заявила, что в рамках одного расследования будет рассмотрено обязательное использование собственной системы покупок Apple в приложении и правила, запрещающие разработчикам приложений информировать пользователей iPhone и iPad о более дешевых вариантах, доступных в других местах.

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

Компания Kioxia объявила о выпуске твердотельных накопителей серии PM6, предназначенных для серверов и хранилищ. Эти устройства типоразмера 2,5 дюйма оснащены интерфейсом SAS. Точнее говоря, SAS 24G, то есть с поддержкой скорости 22,5 Гбит/с на одну линию. По словам Kioxia, это первые SSD с интерфейсом SAS 24G.

Пасхалка в ionCube — попытка разработчиков замести мусор под ковер? - 1


Веб-разработчик знает, что скрипты, созданные в коммерческих целях, могут пойти гулять по сети с затёртыми копирайтами; не исключено, что скрипт начнут перепродавать от чужого имени. Чтобы скрыть исходный код скрипта и препятствовать его изменению, применяются обфускаторы, минификаторы и т.д. Один из самых давних и известных инструментов для шифрования скриптов на PHP — это ionCube. Появившийся в 2002, он продолжает следить за развитием PHP и заявляет о поддержке последних версий платформы. Как я покажу в этой статье, с поддержкой PHP 7 у ionCube далеко не всё в порядке...Читать полностью »


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