Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 2148 сообщений
Cообщения с меткой

компиляторы - Самое интересное в блогах

«  Предыдущие 30 Следующие 30  »
rss_habr

Выжимаем все соки: PGO Оптимизация ядра Linux

Вторник, 22 Ноября 2022 г. 12:00 (ссылка)



Сложность вычислительных задач и систем растёт с каждым днём. Для бизнеса ускорение кода даже на пару процентов даёт улучшение производительности, заметное снижение издержек и уменьшение задержек(latency). В первую очередь это касается мобильных и встраиваемых систем, высоконагруженных серверов, научных вычислений и 3D-графики. Так был разработан относительно перспективный и молодой метод оптимизации — Profile-Guided Optimization, далее просто PGO-оптимизация. Данный метод эффективно используют такие известные компании, как Google, Mozilla Foundation, Intel, Oracle, IBM и другие. Практически ни один современный веб-браузер не обходится без PGO-оптимизации.



Не так давно компанией Google был предложен набор патчей, включающий PGO-оптимизацию в ядре Linux. Мною был протестирован этот набор патчей в работе и доработан. Мне хотелось бы рассказать об этом методе оптимизации ядра Linux, о том, с какими трудностями можно столкнуться, и как их решить.



Если вас заинтересовала эта тема, вам интересно развитие технологий и тренды крупных компаний, то добро пожаловать под кат.
Узнать подробности

https://habr.com/ru/post/696236/?utm_source=habrahabr&utm_medium=rss&utm_campaign=696236

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Выжимаем все соки: PGO Оптимизация ядра Linux

Вторник, 22 Ноября 2022 г. 12:00 (ссылка)



Сложность вычислительных задач и систем растёт с каждым днём. Для бизнеса ускорение кода даже на пару процентов даёт улучшение производительности, заметное снижение издержек и уменьшение задержек(latency). В первую очередь это касается мобильных и встраиваемых систем, высоконагруженных серверов, научных вычислений и 3D-графики. Так был разработан относительно перспективный и молодой метод оптимизации — Profile-Guided Optimization, далее просто PGO-оптимизация. Данный метод эффективно используют такие известные компании, как Google, Mozilla Foundation, Intel, Oracle, IBM и другие. Практически ни один современный веб-браузер не обходится без PGO-оптимизации.



Не так давно компанией Google был предложен набор патчей, включающий PGO-оптимизацию в ядре Linux. Мною был протестирован этот набор патчей в работе и доработан. Мне хотелось бы рассказать об этом методе оптимизации ядра Linux, о том, с какими трудностями можно столкнуться, и как их решить.



Если вас заинтересовала эта тема, вам интересно развитие технологий и тренды крупных компаний, то добро пожаловать под кат.
Узнать подробности

https://habr.com/ru/post/696236/?utm_source=habrahabr&utm_medium=rss&utm_campaign=696236

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Как оценить реальную производительность своего кода

Понедельник, 21 Ноября 2022 г. 12:00 (ссылка)



Код, который мы пишем, и который будет исполнен процессором, — две разные вещи. На уровне ассемблера существует миллион вариантов, в каком виде интерпретировать и запустить высокоуровневые команды. Более того, современные компиляторы сильно оптимизируют код, а результат этой оптимизации похож на магию.
Читать дальше →

https://habr.com/ru/post/698016/?utm_source=habrahabr&utm_medium=rss&utm_campaign=698016

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Сборка мусора в неисправных JVM, проактивный подход

Пятница, 18 Ноября 2022 г. 17:00 (ссылка)

image



Команда Netflix Cloud Data Engineering работает с различными приложениями для JVM, включая такие популярные хранилища данных, как Cassandra и Elasticsearch. Хотя большинство наших кластеров стабильно работают, обходясь выделенной им памятью, иногда «запрос смерти» или ошибка в самом хранилище данных приводят к перерасходу памяти, что может спровоцировать лишние циклы сборки мусора или даже привести к исчерпанию памяти в JVM.
Читать дальше →

https://habr.com/ru/post/700224/?utm_source=habrahabr&utm_medium=rss&utm_campaign=700224

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Как сделать программу на Go быстрее на 42%, изменив один символ

Среда, 16 Ноября 2022 г. 08:13 (ссылка)



Если вы прочитали заголовок и подумали «ну, ты, наверно, сделал сначала что-то глупое», то вы правы! Но что такое программирование, как не упражнения в глупых ошибках? Поиск глупых ошибок — это и есть самое большое удовольствие!



Также стоит заранее сделать оговорку о бенчмаркинге: ускорение на 42% было замерено при выполнении программы с моими данными и на моём компьютере, поэтому относитесь к этому результату с долей скепсиса.



Что делает программа?



codeowners — это программа на Go, выводящая владельцев каждого из файлов в репозитории согласно набору правил, указанному в файле GitHub CODEOWNERS. Правило может гласить, что всеми файлами с расширением .go владеет команда @gophers, или что всеми файлами в папке docs/ владеет команда @docs.
Читать дальше →

https://habr.com/ru/post/699538/?utm_source=habrahabr&utm_medium=rss&utm_campaign=699538

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

KPHP спустя 2 года

Пятница, 11 Ноября 2022 г. 12:12 (ссылка)

Ровно два года назад — в ту же самую дату и в то же самое время — я опубликовал статью «ВКонтакте снова выкладывает KPHP».

Сегодня рассказываю, куда мы продвинулись за эти два года: про язык, рантайм, использование KPHP вне ВКонтакте, другие open-source проекты и февраль 2022-го.

Читать далее

https://habr.com/ru/post/698294/?utm_source=habrahabr&utm_medium=rss&utm_campaign=698294

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Релиз языка программирования NewLang 0.3

Понедельник, 07 Ноября 2022 г. 16:27 (ссылка)

image

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



NewLang находится в процессе активного развития. Это третий публичный релиз в который добавлены новые существенные возможности по сравнению с предыдущей версией.

Читать дальше →

https://habr.com/ru/post/697400/?utm_source=habrahabr&utm_medium=rss&utm_campaign=697400

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Rust 1.65.0: GAT, let-else, break от помеченных блоков, отказ от RLS

Пятница, 04 Ноября 2022 г. 11:44 (ссылка)

Команда Rust рада сообщить о новой версии языка — 1.65.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.



Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.65.0 вам достаточно выполнить команду:



rustup update stable


Если у вас ещё нет rustup, то можете установить его со страницы на нашем веб-сайте, а также ознакомиться с подробным описанием выпуска 1.65.0 на GitHub.



Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать beta (rustup default beta) или nightly (rustup default nightly) канал. Пожалуйста, сообщайте обо всех встреченных вами ошибках.

Читать дальше →

https://habr.com/ru/post/697430/?utm_source=habrahabr&utm_medium=rss&utm_campaign=697430

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Опыт портирования геометрического ядра C3D на платформу «Эльбрус»

Среда, 02 Ноября 2022 г. 11:11 (ссылка)

В конце 2021 года мы инициировали процесс портирования геометрического ядра C3D Labs на отечественную платформу «Эльбрус». В этой заметке мы хотим рассказать об основных этапах этого процесса.

«Эльбрус» — это программно-аппаратная платформа, которая разрабатывается компанией МЦСТ. Процессоры данной модели используют набор команд типа RISC (Reduced Instruction Set Computer) и имеют собственную архитектуру E2K. Последняя относится к типу VLIW, то есть имеет длинную машинную команду.

Стоит отметить, что большинство современных процессоров основано на наборе команд типа CISC (Complicated Instruction Set Computer) и имеет архитектуры x86_64 или arm. Из сказанного выше следует, что архитектура E2K отличается рядом особенностей по сравнению с другими архитектурами, что создает определённые сложности при портировании. Поэтому ниже мы перечислим некоторые из этих сложностей.

Читать далее

https://habr.com/ru/post/696740/?utm_source=habrahabr&utm_medium=rss&utm_campaign=696740

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Примеры ошибок, которые может обнаружить PVS-Studio в коде LLVM 15.0

Вторник, 25 Октября 2022 г. 18:04 (ссылка)

PVS-Studio: потому, что могу

Компиляторы развиваются и выдают всё больше предупреждений. Остаются ли преимущества от использования статических анализаторов кода, таких как PVS-Studio? Да, так как анализаторы тоже развиваются. Перед вами статья о том, как PVS-Studio находит баги даже в компиляторе.

Читать дальше →

https://habr.com/ru/post/695426/?utm_source=habrahabr&utm_medium=rss&utm_campaign=695426

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Примеры ошибок, которые может обнаружить PVS-Studio в коде LLVM 15.0

Вторник, 25 Октября 2022 г. 18:04 (ссылка)

PVS-Studio: потому, что могу

Компиляторы развиваются и выдают всё больше предупреждений. Остаются ли преимущества от использования статических анализаторов кода, таких как PVS-Studio? Да, так как анализаторы тоже развиваются. Перед вами статья о том, как PVS-Studio находит баги даже в компиляторе.

Читать дальше →

https://habr.com/ru/post/695426/?utm_source=habrahabr&utm_medium=rss&utm_campaign=695426

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Сегментная адресация памяти

Четверг, 06 Октября 2022 г. 14:11 (ссылка)

Наиболее распространенная модель адресации памяти - плоская, когда у каждого элемента памяти есть глобальный адрес. Но это не единственный способ работы с памятью, в данной статье я хочу рассмотреть одну из альтернатив - сегментную адресаци. Будут расмотрены несколько исторических систем, реализующих этот подход, преимущества сегментной адресации с точки зрения масштабирования и безопастности, а также высказаны гипотезы о причинах, по которым он не прижился (спойлер: буду ругать язык C и перационную систему Unix).

В подавляющем большинстве компьютерных систем для работы с некоторой ячейкой памяти необходимо как-то указать ее адрес, как правило 16-, 32- или 64-разрядное число. Количество бит в адресе часто называют разряностью системы. Часто дополнительно используется механизм "трансляции страниц", который отображает области виртуальной памяти пользовательского приложения в физическую память, которой управляет операционная система. Но в каждый момент времени активна отлько одна "таблица страниц" и с точки зрения приложения (а во многом и с точки зрения ядра ОС) память остается плоской.

Рассмотрим старый процессор Intel 86/88/186. Размер регистров этих процессоров всего 16 бит, что позволяет адресовать всего 64 килобайта памяти. Когда эти микросхемы разрабатывались, такого размера памяти уже не хватало для многих приложений, а 32-разрядные процессора были слишком дороги. Проблему решили добавив в архитекруту сегментные регистры. При обращении к памяти к 16-битному адресу (хранящемуся в реристре общего назначения или прямо в коде команды) прибавлялось значение сегментного регистра, сдвинутое на 4 бита (что тоже самое, умноженное на 16) и полученное значение использовалось как физический адрес. Такой подход позволял адресовать до одного гигабайта памяти. В архитектуре персональных компьтерах IBM PC, созданных на базе этих процессров, часть адресного пространства было зарезервировано для системных нужд, а пользовательским приложениям и ОС было доступно до 640 килобайт. Но не все так просто.

Читать далее

https://habr.com/ru/post/689326/?utm_source=habrahabr&utm_medium=rss&utm_campaign=689326

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Rust 1.64.0: rust-analyzer в rustup, IntoFuture, ffi-типы в core и alloc, улучшения в Cargo

Пятница, 23 Сентября 2022 г. 18:20 (ссылка)

Команда Rust рада сообщить о новой версии языка — 1.64.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.



Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.64.0 вам достаточно выполнить команду:



rustup update stable


Если у вас ещё нет rustup, то можете установить его со страницы на нашем веб-сайте, а также ознакомиться с подробным описанием выпуска 1.64.0 на GitHub.



Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать beta (rustup default beta) или nightly (rustup default nightly) канал. Пожалуйста, сообщайте обо всех встреченных вами ошибках.

Читать дальше →

https://habr.com/ru/post/689876/?utm_source=habrahabr&utm_medium=rss&utm_campaign=689876

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Компилирование и исполнение Java-кода в Runtime

Пятница, 16 Сентября 2022 г. 09:50 (ссылка)

Привет Хабр! Сегодня я хотел бы поговорить про динамическое компилирование и исполнение Java-кода, подобно скриптовым языкам программирования. В этой статье вы найдете пошаговое руководство как скомпилировать Java в Bytecode и загрузить новые классы в ClassLoader на лету.

Читать далее

https://habr.com/ru/post/688462/?utm_source=habrahabr&utm_medium=rss&utm_campaign=688462

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

«  Предыдущие 30 Следующие 30  »

<компиляторы - Самое интересное в блогах

Страницы: 1 [2] 3 4 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda