Ага, у меня весь проект занимает 12 МБ, public занимает ещё 20 МБ. А vendor — 160 МБ!
Кстати, пошёл мерить папки, обнаружил, что var/cache/dev/profiler весит 480 МБ! Пойду прибью его…
Я вынужденно перешёл с тарифа за $5 в DigitalOcean на тариф за $10 — именно из-за того, что composer на 512 мегабайтах не фурычил.
Судя по бенчмарку в конце поста, помимо ускорения работы, отключение GC ещё и уменьшает потребление памяти!
Может, попробовать откатиться назад на $5?..
А у меня гитхаб работает.
Не знаю даже, из-за чего — что у меня провайдер «местный» (Саратов, провайдер Ренет), или потому что у меня вторым в списке dns в роутере стоит гугловский dns.
Что-то я не понял, какое-то странное индексирование — всё равно нужно прочитать все записи из базы и с каждым отдельно проверять. Скорость будет, конечно, быстрее, чем LIKE "%$search%", но гораздо медленнее нормального индекса.
Нужно все отындексированные слова со всего массива исходных текстов поместить в отдельную таблицу, содержащую слово и список айди тех текстов, из которых вы их индексировали. И потом одним запросом найти все тексты, содержащие хотя бы одно из искомых слов, и их пересечением найти нужные тексты.
Хотя, если в базе с пяток текстов, то можно и LIKE-ом обойтись. А так — половинчатое решение.
Да, я уже понял. Сейчас не вижу больших проблем с таким сохранением роутов, кроме той неопределённости при обходе, о которой говорит homm.
>Регекспы из них потом создаются во время обхода списка роутов
во время обхода списка роутов или во время добавления роута? всё-таки генерация регэкспа — не бесплатная процедура, и они постоянно перегенерируются?..
то есть, вы предлагаете дать роутам такое своеобразное имя — '/users/:id'. В принципе, неплохой подход, можно даже идти дальше, и дать им имена типа 'users' или 'users_find_by_id'.
Но есть одна проблема — не все регэкспы имеют однозначное строковое обозначение. Разные регэкспы могут срабатывать на одну и ту же строку запроса.
P.S. Хм, сейчас перепроверил. Я почему-то был уверен, что в регэксп можно добавлять функции. Получается, любой регэксп имеет однозначное отображение в строку, ведь все регэкспы записываются обычной строкой.
обсуждали же это уже выше — регэкспы нельзя ставить ключами объекта (см. примечание переводчика).
Если бы не это, то можно было бы подумать про хэштаблицу. Но не в этом языке.
Посоветую — попробуйте всё-таки поизучать С#. Он не такой уж и страшный, вам понравится (хоть и после нескольких бессонных ночей, пользуясь вашими терминами=). Если вы решили и дальше пробовать программировать, то лучше переходить с VB на приличный язык. Вы об
этом сами хорошо написали в статье.
>Visual Studio Community 2013 бесплатно для любого не корпоративного использования, в том числе при разработке коммерческих приложений
А где можно найти разницу между этими понятиями? Когда просто коммерческое приложение становится корпоративным?
да, неплохое решение. Но я больше говорю о том, чтобы это ограничение было геймплейным, а не техническим. Чтобы игровыми действиями можно было бы заработать больше машинного времени. Ну, и продавать не просто «тарифный план», а «убер-научный центр, +10 к машинному времени» (утрирую).
Разные скрипты могут иметь совершенно разные параметры быстродействия и сложности (и следовательно, по разному будут нагружать ваши сервера). Я подумал, что это тоже может быть объектом геймплея (и монетизации). Построили Spawn — у вас есть возможность писать скрипты со сложностью N, построили второй — можно писать скрипты сложности 2*N (ну, или 1.9*N, чтобы была нелинейная зависимость). Построил 100 — можно делать очень сложные скрипты.
Будет непросто определять сложность скрипта, обычными SLOC не обойтись, но мне кажется, это может быть интересным моментом, добавляющим динамику и сложность.
>Игра писалась в Eclipse, я юзал собственный движок-надстройку над libGDX — DDE (Dark Dream Engine)
Я что-то не понял — вы пишете, что это ваша первая игра, но движок для игры у вас уже есть.
Статья хорошо написана, обо всём сказали самое главное. Спасибо.
Рассказывая про управление свайпом, вы упомянули FruitNinja, но забыли про Cut the rope, которая гораздо более похожа на вашу игру. К тому же, в ней тоже есть коробки — наборы уровней.
Если игра хоть как-то «пойдёт», то хорошо бы локализацию добавить, на несколько основных языков.
Кстати, пошёл мерить папки, обнаружил, что var/cache/dev/profiler весит 480 МБ! Пойду прибью его…
Судя по бенчмарку в конце поста, помимо ускорения работы, отключение GC ещё и уменьшает потребление памяти!
Может, попробовать откатиться назад на $5?..
Не знаю даже, из-за чего — что у меня провайдер «местный» (Саратов, провайдер Ренет), или потому что у меня вторым в списке dns в роутере стоит гугловский dns.
Нужно все отындексированные слова со всего массива исходных текстов поместить в отдельную таблицу, содержащую слово и список айди тех текстов, из которых вы их индексировали. И потом одним запросом найти все тексты, содержащие хотя бы одно из искомых слов, и их пересечением найти нужные тексты.
Хотя, если в базе с пяток текстов, то можно и LIKE-ом обойтись. А так — половинчатое решение.
Скайуокер?..
>Регекспы из них потом создаются во время обхода списка роутов
во время обхода списка роутов или во время добавления роута? всё-таки генерация регэкспа — не бесплатная процедура, и они постоянно перегенерируются?..
Но есть одна проблема — не все регэкспы имеют однозначное строковое обозначение. Разные регэкспы могут срабатывать на одну и ту же строку запроса.
P.S. Хм, сейчас перепроверил. Я почему-то был уверен, что в регэксп можно добавлять функции. Получается, любой регэксп имеет однозначное отображение в строку, ведь все регэкспы записываются обычной строкой.
Если бы не это, то можно было бы подумать про хэштаблицу.
Но не в этом языке.Автор уже пояснял этот вопрос: habrahabr.ru/post/242963/#comment_8122321
этом сами хорошо написали в статье.
А где можно найти разницу между этими понятиями? Когда просто коммерческое приложение становится корпоративным?
Будет непросто определять сложность скрипта, обычными SLOC не обойтись, но мне кажется, это может быть интересным моментом, добавляющим динамику и сложность.
Я что-то не понял — вы пишете, что это ваша первая игра, но движок для игры у вас уже есть.
Статья хорошо написана, обо всём сказали самое главное. Спасибо.
Рассказывая про управление свайпом, вы упомянули FruitNinja, но забыли про Cut the rope, которая гораздо более похожа на вашу игру. К тому же, в ней тоже есть коробки — наборы уровней.
Если игра хоть как-то «пойдёт», то хорошо бы локализацию добавить, на несколько основных языков.