The OpenNET Project / Index page

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



"Опубликовано пользовательское окружение GNOME 45 "
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Ссылки "<<" и ">>" открывают первые и последние 10 сообщений.
. "Опубликовано пользовательское окружение GNOME 45 " +/
Сообщение от Аноним (295), 23-Сен-23, 15:52 
> "Появление массива строк на экране" - это рендеринг

Нет, это чтение строк (массива байт до нуль-терминатора) из буфера (массива фиксированного размера указателей на строки) и, возможно, запись в произвольный буфер вывода (например, тоже в текстовый). Чтение/запись могут осуществляться одним вызовом Си-функции на буфер (DOD-style) - быстро, как любят практикующие инженеры, а может - десятками вызовов (OOP-style) - безобразно медленно, как любят математики-теоретики.
Рендеринг - это последовательная растеризация глифов векторного шрифта с учетом шрифтовых метрик (например, расстояния между определенными буквами), возможно, с последующим копированием финального растра в видеобуфер.
В текстовом режиме экрана используются только моноширинные растровые шрифты с фиксированным кеглем и там фаза рендеринга отсутствует вовсе, есть только текстовый вывод (запись байт в текстовый буфер дисплея). А непосредственно вывод на дисплей - аппаратный.

> при действительно быстром выводе

Если вывод буферизирован (как в stdout), скорость вывода в него (вызов функции с передачей указателя на начало копируемой строки) не зависит от скорости вывода на дисплей. Наоборот, второе зависит от первого. Фаза рендеринга, если такая есть, перед выводом на дисплей - аналогично, отдельный зависимый поток. На скорость работы скрипта вывод, с рендерингом или без, не влияет.
Собственная скорость рендеринга мало отличается при выводе через современные ГПУ и ЦПУ (ибо ЦПУ везде многоядерные с высокой частотой, а ГПУ не умеют оптимизоровать рендеринг кривых, они больше по треугольникам и линейной алгебре).
Таким образом "действительно быстрый вывод" упрётся в бутылочное горлышко скорости появления строк в буфере (ещё до рендеринга), что наиболее вероятно, либо в ограничения аппаратного вывода (частота синхронизации дисплея), что менее вероятно.

> легко обнаруживается двойным слепым

Вывод - на экран, это слияние буферизированного stdout и небуферизированного stderr. Он недетерминирован. То есть мы получаем разный результат при одинаковых вводных в зависимости от фазы луны. Поэтому каждый видит лишь то, что хочет. В этом легко убедиться проводя эксперименты больше одного раза, в разных лабораториях, разными экспериментаторами (хоть бы и зрячими, в слепых я, простите, не верю, капитализм исключает "слепоту" в науке).

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Опубликовано пользовательское окружение GNOME 45 , opennews, 21-Сен-23, 00:03  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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