Что поисковая система используется в новой документации Python?

Разница в производительности, которую вы видите, скорее всего, не просто разница между iOS / Android, но будет очень специфичной как для использования вами API, так и для реализации glBufferSubData в драйвере. Не видя больше кода или не зная, какие показатели производительности вы собираете, трудно комментировать дальше.

что означает «что рендеринг должен истечь из конвейера, прежде чем хранилище данных может быть обновлено», действительно означает?

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

Рассмотрим следующий пример. В хорошем случае у нас может быть что-то вроде этого:

  • glBufferSubData в буфер 1 с ABCDE
  • Вызов с использованием буфера 1
  • glBufferSubData в буфер 2 с FGHIJ
  • Отрисовка вызова с использованием буфера 2
  • Буферы подкачки < ----- Точка синхронизации, драйвер должен дождаться окончания рендеринга, прежде чем менять буферы

Однако, если вы перезаписываете тот же буфер, вы получите это вместо этого.

  • glBufferSubData в буфер 1 с ABCDE
  • Рисование вызова с использованием буфера 1
  • glBufferSubData в буфер 1 с перезаписью с помощью FGHIJ < ----- точки синхронизации в качестве драйвера должен убедиться, что буфер закончил использоваться первым вызовом отрисовки перед изменением данных
  • вызов отрисовки с использованием обновленного буфера 1
  • Обмен буферов < ----- Точка синхронизации, драйвер должен дождитесь окончания рендеринга, прежде чем менять буферы

Как видите, потенциально вы можете получить вторую точку синхронизации. Однако, как упоминалось ранее, это зависит от конкретного драйвера. Например, некоторые драйверы могут обнаружить случай, когда обновляемый раздел буфера не используется предыдущим вызовом отрисовки, а другие - нет. Возможно, что-то в этом роде и вызывает разницу в производительности.

13
задан Chris Morgan 18 July 2011 в 13:11
поделиться

3 ответа

Это похоже на Сфинкса, содержит собственную поисковую систему для английского языка. См. http://sphinx.pocoo.org/_static/searchtools.js и searchindex.js/.json (см. индекс 36Kb документов Сфинкса, индекс 857Kb документов Python и документы Grok 37 КБ).

Индекс предварительно вычисляется, когда документы сгенерированы.

Когда каждый ищет, статическая страница загружается и затем _static/searchtools.js критерии поиска извлечения от строки запроса, нормализует (случай, стемминг, и т.д.) их и ищет в searchindex.js, как это загружается.

Первая поисковая попытка скорее занимает много времени, последовательный намного быстрее, поскольку индекс кэшируется в Вашем браузере.

22
ответ дан 1 December 2019 в 21:53
поделиться

Да. Сфинкс не встроен, как бы то ни было. Поисковый виджет является частью сфинкса. Под каким контекстом Вы подразумевали "встроенный"?

На странице iteself: http://docs.python.org/about.html

http://sphinx.pocoo.org/

-3
ответ дан 1 December 2019 в 21:53
поделиться

Поисковая система Сфинкса создается в JavaScript. Это использует JQuery и (иногда очень большой) файл JavaScript, содержащий критерии поиска.

5
ответ дан 1 December 2019 в 21:53
поделиться
Другие вопросы по тегам:

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