Используя array_intersect есть возможность выстрелить в ногу:
Замечание: Два элемента считаются одинаковыми тогда и только тогда, когда (string) $elem1 === (string) $elem2. Другими словами, когда их строковые представления идентичны.
Не зная хитростей гигантов тяжело оценить производительность, например, включение class кэша в Symfony2.
Плюс обязательно должна быть работа с бд на мой взгляд, т.к. статические страницы уже давно не актуальны)
Ну и не плохо бы с авторизацией (т.к. это тоже частая задача).
да, спасибо, смотрел async. jQuery.deferred просто для примера привел как один из вариантов. Удобно что внутри функции в pipe можно вернуть другой deferred тем самым расширив цепочку вычислений внутри функции
В случае хранения в памяти возможно стоит предусмотреть какие то индексы, чтобы не бегать каждый раз по всей памяти (особенно в случаях когда надо только оценить количество точек, подходящих под критерии поиска). Детально пока не обдумывал этот момент. Но очевидно что из за накладных расходов на индексы — количество хранимых точек в памяти снизится
набор точек меняется часто. думал уже о том чтобы написать мини демона, который будет хранить все точки в памяти.
Если взять расходы по 100байт на точку, то получится 1млрд влезет в 10гб оперативки.
Думал также и об идее разбивать точки на географические квадраты (например по 10 градусов по широте и долготе) и дальше шардить эти квадраты — минус в том что точки неравномерно будут расположены по карте мира и нужно будет хитрым способом определять какие квадраты на какие шарды пихать.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Замечание: Два элемента считаются одинаковыми тогда и только тогда, когда (string) $elem1 === (string) $elem2. Другими словами, когда их строковые представления идентичны.
var_dump(array_intersect([null, false], [""])) ;