The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Проект LLVM развивает средства для безопасной работы с буферами в C++"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Отдельный RSS теперь доступен для каждого обсуждения в форуме и каждого минипортала.
. "Проект LLVM развивает средства для безопасной работы с буфер..." +1 +/
Сообщение от none7 (ok), 06-Окт-22, 14:30 
Не бывает бесплатных проверок, даже за защищённый режим процессора с его виртуальной памятью приходится платить свою цену, реальный режим реально быстрее. У x86 так же есть инструкция bound для проверки соответствия указателя определённому диапазону, но естественно времени она занимает столько же как и пара cmp+j[ab], хотя реализована аппаратнее некуда. Проверки данных по одной границе при изменении оказались дешевле и инструкцию выбросили на свалку истории. Дешевле одной проверки только отсутствие проверки во время выполнения, например мы можем быть уверены, что в результате операции i & 255, i не выйдет за пределы массива длиной 256 байт. Компиляторы Rust и Ada вроде как специализируются на обеспечении таких гарантий и должны бы быть быстрее компиляторов Си... должны бы быть.
Проверки это вещь столь бесплатная, что у gcc даже есть флаг -funroll-loops, который разворачивает циклы так, чтобы уменьшить число проверок.
Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Проект LLVM развивает средства для безопасной работы с буферами в C++, opennews, 06-Окт-22, 11:05  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру