Новый взгляд на старые вещи

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха информатор 3.1
Еще более удобное оповещение о флуде!

Краснодарское время: 25 Май, 2012, 09:04:00

Страниц: [1] 2
Печать
Автор Тема: алгоритмы кеширования  (Прочитано 3234 раз)
0 Пользователей и 1 Гость смотрят эту тему.
CTAPbIu_MABP    ↓ 
08 Май, 2008, 12:25:16
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5187
Сила слова: 1.81

Я не знал как правильно назвать но в общем это еще одна тема для холивара.
 
Вобщем читаем тут
http://mabp.kiev.ua/content/2008/05/08/autocache/
и пишем что думаем. а еще лучше оставляйте ссылки на описание какихнибудь классных алгоритмов кэширования которые можно на это натянуть
 
Записан

java.lang.OutOfMemoryError
CTAPbIu_MABP    ↓ 
09 Май, 2008, 03:59:54 , спустя 1 день 3 часа 34 минуты 38 секунд
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5187
Сила слова: 1.81

что неужели никто не может ничего лучшего предложить?
Записан

java.lang.OutOfMemoryError
adw0rd    ↓ 
09 Май, 2008, 04:14:46 , спустя 14 минут 52 секунды
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17633
Сила слова: 1.67

CTAPbIu_MABP, еще бы выделить время на прочтение твоего труда...
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
ghost    ↓ 
10 Май, 2008, 03:25:06 , спустя 11 часов 10 минут 20 секунд
НЕ ХУЕТА! ХУЕТА!

без вариантов
Группа: в ухо

Карма: 29
Сообщений: 876
Сила слова: 3.31

Но это все было бы очень хорошо если бы наш бэкэнд (я имею ввиду сайт Киевстара) не возвращал только первых 500 найденных записей на каждый запрос
хм.. Киевстара.. знакомый оператор) а ты откуда кстати? а по поводу алгоритма.. уместен вопрос если при выборе одной буквы выбирается 1000000 записей, при уточнении (+1 буква) 10000 записей, и т.д сколько пользователей одновременно смогут обратится к страничке.. и при какой посещаемости хостер пошлёт тебя куда-подальше..
 
что касаемо кеширования - думаю мускль с этим справится сам. не стоит, имхо, заморачиваться.
Записан

Если ты уже два часа споришь с идиотом - скорее всего он делает тоже самое...
ghost    ↓ 
10 Май, 2008, 03:30:37 , спустя 5 минут 31 секунду
НЕ ХУЕТА! ХУЕТА!

без вариантов
Группа: в ухо

Карма: 29
Сообщений: 876
Сила слова: 3.31

вот только причём тут жаб-скрипт)?
Записан

Если ты уже два часа споришь с идиотом - скорее всего он делает тоже самое...
adw0rd    ↓ 
10 Май, 2008, 03:32:59 , спустя 12 часов 2 минуты 22 секунды
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17633
Сила слова: 1.67

ghost, он хочет вынести вычисления на клиент часть, чтобы к серваку не обращаться каждый раз.
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
vasa_c    ↓ 
10 Май, 2008, 03:45:07 , спустя 12 минут 8 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

Используйте не примитивные строки, а объекты String(), тогда элементы массивов будут содержать только ссылки на них.
 
Сначала определите до какого уровня нужно держать кэши. Нужны ли "КАР", "КАД" и т.п. или их можно восстанавливать из "КА".
 
Когда вы вводите "К", то в ответе сначала возвращаются слова начинающиеся на "КА" (если упорядочивание по алфавиту), потом (если КА не занял всю страницу) начинающиеся на "КБ" и т.д. Возвращайте в этом случае структуры слов на "ка", "кб"... Для последнего, вошедшего на страницу, сочетания так же желательно вернуть общее количество слов в базе. Дальше из этого склеивайте последовательность для "К".
 
Оптимальность зависит во многом от того сколько у вас слов и будет ли пагинатор.
Записан

ghost    ↓ 
10 Май, 2008, 04:03:53 , спустя 18 минут 46 секунд
НЕ ХУЕТА! ХУЕТА!

без вариантов
Группа: в ухо

Карма: 29
Сообщений: 876
Сила слова: 3.31

выгружать на клиентский комп 1000000 записей для 1-й буквы?????????
« Последнее редактирование: 10 Май, 2008, 04:08:13 от ghost » Записан

Если ты уже два часа споришь с идиотом - скорее всего он делает тоже самое...
vasa_c    ↓ 
10 Май, 2008, 05:37:52 , спустя 1 час 33 минуты 59 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

Нет. С постраничным лимитом
Записан

ghost    ↓ 
10 Май, 2008, 05:56:45 , спустя 18 минут 53 секунды
НЕ ХУЕТА! ХУЕТА!

без вариантов
Группа: в ухо

Карма: 29
Сообщений: 876
Сила слова: 3.31

тогда выгружая например для той же 1-й "К" с лимитом например 30 мы выгрузим 30 слов, начинающихся на "ка", что не даст абсолютно никаких преимуществ если следующая буква будет скажем "е"
Записан

Если ты уже два часа споришь с идиотом - скорее всего он делает тоже самое...
vasa_c    ↓ 
10 Май, 2008, 05:59:16 , спустя 2 минуты 31 секунду
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

Мы по всякому загружая слова на "К" будем загружать слова на "КА", так почему бы сразу и не запомнить?
Записан

ghost    ↓ 
10 Май, 2008, 06:16:36 , спустя 17 минут 20 секунд
НЕ ХУЕТА! ХУЕТА!

без вариантов
Группа: в ухо

Карма: 29
Сообщений: 876
Сила слова: 3.31

ну может тогда имеет смысл их еще и в куках запоминать?. чтоб при обновлении запросы не дублировались.
и где-нить хранить дату последнего обновления таблицы, чтоб при необходимости куки угрохать
Записан

Если ты уже два часа споришь с идиотом - скорее всего он делает тоже самое...
vasa_c    ↓ 
10 Май, 2008, 06:22:22 , спустя 5 минут 46 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

излишне
Записан

CTAPbIu_MABP    ↓ 
11 Май, 2008, 02:03:55 , спустя 19 часов 41 минуту 33 секунды
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5187
Сила слова: 1.81

хм.. Киевстара.. знакомый оператор) а ты откуда кстати?
Киев)
 
сколько пользователей одновременно смогут обратится к страничке
Меня не интересует перформанс сервера, меня интересует перформанс клиента, если он на диалапе то качать туда-сюда 1000 записей всетакие не очень приятно. Кстати по поводу сервера там не мускул а оракл, и это не хостер а выделенная площадка.
 
Используйте не примитивные строки, а объекты String(), тогда элементы массивов будут содержать только ссылки на них.
с этого места поподробнее можно?
 
Дальше из этого склеивайте последовательность для "К"
я думаю это излишне, склеивание я пожалуй реализовывать не буду
Записан

java.lang.OutOfMemoryError
vasa_c    ↓ 
11 Май, 2008, 07:52:25 , спустя 5 часов 48 минут 30 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

с этого места поподробнее можно?

В теории:
Javascript

var str = "Строка"; // str содержит примитивное значение строки.
var str2 = str;       // Копирование всей строки в нужную переменную.
 
var str = new String("Строка"); // Создание объекта String в памяти и запись ссылки на него в str.
var str2 = str;  // Копирование ссылки на объект. Объект остаётся один.
 

На практике: внутри каждого конкретного JS-движка возможно использование отложенного копирования для оптимизации первого варианта.
 
Так что в идеале нужно протестировать все браузеры на тему, будет ли где-нибудь выигрыш.
Записан

Страниц: [1] 2
Печать
 

Перейти в: