Является ли эта идея для загрузки онлайн-контента в массовых выполнимо? - PullRequest
4 голосов
/ 24 апреля 2011

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


Описание.

Когда люди посещают сайты, я предположение, что это вероятность функция плотности P (q, t), где q представляет собой действительное число, представляющее Идентификатор сайта и т. Другой действительное, неотрицательное целое число представляя время суток, может предсказать последовательность веб-страниц посетил типичный человек достаточно точно, чтобы оправдать запрос и загрузка HTML документы, которые пользователь собирается прочитать в авансовый. Для данного сайта есть документ, который представляется "основным страница »сайта, через который пользователи получают доступ к другим разделам представлен корнем дерева состав. Вероятность того, что пользователь посетит корневой узел Дерево может быть представлено двумя способами. Если пользователь желает разрешить процесс автоматически выполнять при инициализация операционной системы предварительно выбрать веб-страницы с веб-сайтов (используя процесс, разработанный позже) к которому пользователь часто обращается при открытии веб-браузера функция вероятности, которая определяет будет ли данный сайт иметь свой Предварительно извлеченные веб-страницы могут быть определены используя самоадаптирующуюся эвристическую модель на основе истории пользователя (или ручной ввод). В противном случае, если нет такого процесс желает пользователь, значение P для корневого узла не имеет значения, так как предварительная выборка процесс используется только после того, как пользователь посещение главной страницы сайта.

Дети на дереве, описанном ранее каждый связан с человеком функция вероятности P (q, t) (это функция может быть справочной таблицей, которая хранит пары время-веб-страница). Таким образом последовательности веб-страниц, которые посещает пользователь со временем регистрируются с помощью этого дерева состав. Например, в 7:00 утра, там может быть 71/80 шанс, что я посетите раздел "WTF" на Reddit после загрузки главной страницы этого сайт. На основании значений p> функция робастности P для каждого узла в дереве, цепочки веб-страниц простираясь на определенную глубину от корневой узел, где чистая вероятность что каждая последовательность соблюдается, P_c, превышает определенный порог, P_min, запрашиваются при посещении пользователя главная страница сайта. Если заканчивается загрузка одной веб-страницы до того, как другой обработан, пул потоков используется так, чтобы другой ядро назначена задача разбора следующая веб-страница в очереди веб-страницы для анализа. Надеюсь, в таким образом, большая часть тех веб-страницы, которые пользователь может нажимать отображается гораздо быстрее, чем они было бы иначе.


Я упустил много деталей и оптимизаций, поскольку я просто хотел, чтобы это было кратким описанием того, о чем я думал. Большое спасибо, что нашли время, чтобы прочитать этот пост; не стесняйтесь задавать любые дополнительные вопросы, если они у вас есть.

Ответы [ 3 ]

9 голосов
/ 24 апреля 2011

Интересная идея - и были некоторые реализации для предварительной выборки в браузерах, хотя и без мозгов, которые вы предлагаете, - которые могли бы помочь много.Я думаю, что в этом плане есть некоторые недостатки:

a) просмотр веб-страниц, в большинстве случаев, достаточно быстрый для большинства целей.
b) пропускная способность становится измеряемой - если я просто смотрюна домашней странице, хочу ли я, как пользователь, платить за обслуживание других страниц.Более того, в тех случаях, когда подобные вещи могут быть полезны (например, медленное соединение 3g), пропускная способность имеет тенденцию быть более точной.И, возможно, не так хорош в параллелизме (например, соединения CDMA 3g).
c) с точки зрения оператора сервера, я бы предпочел просто обслуживать запрошенные страницы в большинстве случаев.Рендеринг страниц, которые никогда не видели, стоит мне циклов и пропускной способности.Если вы похожи на множество людей и на какой-то платформе облачных вычислений, вы платите циклом и байтом.
d) потребуется перестроить множество аналитических систем, многие из которых все еще работают по теории запроса == impression

Или, вкратце, нет необходимости предварительно определять, что люди будут просматривать, чтобы ускорить обслуживание и рендеринг страниц.Теперь места, где что-то подобное могло бы быть действительно полезным, были бы в «эй, если вам понравился X, вам, вероятно, понравился Y», а затем передавали ссылки и тому подобное на указанный контент (или продукты) людям.

1 голос
/ 24 апреля 2011

Windows делает то же самое с доступом к диску - она ​​«знает», что вы можете запустить, скажем, Firefox в определенное время, и предварительно загружает его.

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

http://en.wikipedia.org/wiki/Windows_Vista_I/O_technologies#SuperFetch

0 голосов
/ 29 апреля 2011

Указывает существующую технологию, которая делает подобное:

  • Считыватели RSS загружают каналы в фоновом режиме, предполагая, что пользователь захочет прочитать их рано или поздно. Там нет функции вероятности, которая выбирает каналы для загрузки, хотя пользователь явно выбирает их
  • Начальная страница браузера и закрепленные вкладки: они загружаются при запуске браузера, и пользователь снова выбирает, какие веб-сайты стоит иметь постоянно

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

  • какие другие веб-сайты открыты во вкладках («песня, открытая пользователем на YouTube, предварительная загрузка текстов песен и гитарные аккорды!»)
  • какие другие приложения работают («пользователь просматривает счет в программе чтения электронной почты, предварительно загруженный интернет-банк»)
  • какой человек использует компьютер - используйте веб-камеру для распознавания лиц, узнайте, какие сайты посещает каждый из них
...