GDI был ускорен. Кто-либо знает, когда это произошло?

Это не обнаружение внешних скобок. Он находит самую внутреннюю пару, переворачивает внутреннюю, а затем повторяет, пока не останется больше скобок.

if inputString[i] == ")":
    ....

Этот блок срабатывает, когда вы нажмете первый «)», и на этом этапе start будет «(», который открывает первый «)». Это самая внутренняя пара.

Тогда у вас есть:

return reverseInParentheses(inputString[:start]+inputString[start+1:end][::-1]+inputString[end+1:n])

Это переворачивает содержимое от начала до конца (самая внутренняя пара), а затем вызывает функцию, обрезая остальную часть цикла for.

Если вы на самом деле печатаете inputString на каждом шаге, вы получаете:

foo(bar(baz))blim
foo(barzab)blim
foobazrabblim

Внутренние скобки меняются местами.

7
задан QBziZ 6 October 2008 в 15:23
поделиться

5 ответов

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

Однако не становитесь слишком счастливыми - аппаратное ускорение GDI больше не поддерживается в Vista. Новый настольный механизм состава не поддерживает его. Однако в Vista Вы действительно получаете быстро двигающийся из окон, так как содержание должно не всегда перерисовываться приложением (и никакой разрыв, я думаю?).

5
ответ дан 6 December 2019 в 12:56
поделиться

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

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

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

Может также иметь место, что поставщик видеокарты, чтобы вывести карту на рынок быстро, не мог реализовать все возможные аппаратные функции, которые могла выполнить карта. Более поздние версии того драйвера могут затем реализовать ту функциональность, приводящую к улучшенной производительности.

7
ответ дан 6 December 2019 в 12:56
поделиться

В некоторой степени GDI всегда ускорялся. Даже назад в старые дни Win31 я помню, покупает карты (Number9), кто основной коммерческий аргумент, было аппаратное ускорение GDI.

2
ответ дан 6 December 2019 в 12:56
поделиться

Vista имеет новую архитектуру драйвера дисплея, которая обеспечила бы возможность для значительного увеличения производительности. Вы выдерживаете сравнение как комбинации аппаратных средств/ОС?

1
ответ дан 6 December 2019 в 12:56
поделиться

Много 2D материала ускорялось в течение некоторого времени, каждая новая основная версия окон изменила способ, которым работали драйверы дисплеев. Я полагаю, что это было с XP, который обновили окна, это - слой менеджера окон. Трудно для сравнения, действительно, так как XP более подобен окнам, 2000/NT, чем какие-либо более ранние версии.

Еще некоторая информация о Википедии, Разработке Windows XP.

Windows 2000, конечно, были первыми NT-kernel-based окнами, которые будут включать DirectX и имели некоторые графические улучшения также. Windows 2000 (Википедия)

Я не полагаю, что были существенные изменения к драйверу дисплея образцовая/2D подсистема между выпусками. Таким образом, если Вы заметили изменение как этот, это происходит, вероятно, из-за чего-то, что Nvidia сделала.

1
ответ дан 6 December 2019 в 12:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: