В последнее время я работаю с клиентами над вопросами настроек JVM. Смахивает ситуация на то, что далеко не все из разработчиков и администраторов знают о том, как работает garbage collection и о том, как JVM использует память. Поэтому я решил дать вводную в эту тему с наглядным примером. Пост не претендует на то, чтобы покрыть весь объем знаний о garbage collection или настройке JVM (он огромен), ну и, в конце концов, об этом много чего хорошего написано уже в Сети.
Пользователь
Наш велосипед или скрипты, облегчающие жизнь админа
2 мин
39KВ комметариях к одной из предыдущих статей была просьба выложить на всеобщее обозрение все наши наработки, используемые в повседневной жизни. Общими усилиями все было собрано, описано и выложено на github.
Под катом ссылка на репозиторий и краткое описание скриптов.
+34
Использование Percona XtraBackup в повседневной жизни
5 мин
59KВысокая распространенность баз данных MySQL приводит к её использованию в разнообразных проектах, в том числе, которые требуют безостановочной работы и минимального времени восстановления. Стандартные инструменты, такие как mysqldump неудобен для использования баз данных размер, которых измеряется десятками гигабайт. К сожалению mysqldump вызывает блокировку таблиц, и операция снятия дампа или восстановления базы может занимать далеко не один час, а порой и 5-10 часов.
Благо, к нам на помощь приходит Percona XtraBackup.
Благо, к нам на помощь приходит Percona XtraBackup.
+21
Проекты на WordPress: советы по оптимизации
9 мин
52KТуториал
Сегодня Wordpress является одной из самых популярных CMS. Задуманная изначально как движок для блогов, сегодня она используется для самых разных типов сайтов, в частности, для новостных порталов и интернет-СМИ. На Wordpress работают корпоративные веб-сайты, образовательные и развлекательные порталы.
Wordpress используют многие наши клиенты, которые довольно часто обращаются к нам с вопросами по настройке этой CMS.
Подробных инструкций по установке и настройке Wordpress в Интернете опубликовано немало. В этой статье мы бы хотели затронуть вопросы, которым в большинстве публикаций о Wordpress не уделяется достаточно внимания. Мы расскажем о том, как оптимизировать работу сайтов на Wordpress, а также дадим ряд рекомендаций по повышению уровня безопасности и стабильности работы. Во всех примерах используется Ubuntu 12.04.
+38
История восстановления базы MySQL из файлов (InnoDB)
10 мин
58KКак говорит народная мудрость, “админы делятся на две категории: те, которые делают бэкапы, и те, которые уже делают”. В моем случае ответственность за несделанный бэкап упала на разработчика, то есть на меня самого. Данная статья посвящена тому, как найти выход из ситуации, подобной описанной. Надеюсь она будет полезна тем, кто не имея такого опыта, может столкнуться с подобной ситуацией.
+52
Создание игрового персонажа
5 мин
166KВ данной статье описывается процесс создания персонажа для игрового движка. Статья в первую очередь адресована тем, кто интересуется процессом разработки next gen моделей, а также всем, кто хочет заглянуть за кулисы современного игродела. Персонажа я делал для портфолио, на персонажей переключился совсем недавно, можно сказать, что это первый доведенный до ума персонаж. Поскольку данная работа — мой личный проект, то я установил ограничение треугольников в 20 000, текстуры в 2048*2048, работа планировалась под PBR.
+83
Игровой сервер на Scala + Akka
7 мин
41KRecovery Mode
Когда-то давно я уже поднимал тему применения Scala в игровом сервере. Тогда это был совсем простой пример использующий только Scala. С тех времен много воды утекло. Scala и Akka развиваются, но статей по ним что-то не прибавляется. А тема очень интересна. В общем хочется продолжить цикл статей про сервер на Scala. В этой статье будет описана общая архитектура решения. А так же что дает использование Scala и Akka. Примеры кода.
+42
Пулы соединений к БД — зачем и почему
5 мин
80KКогда Ваш проект начинает пользуется популярностью и каждая миллисекунда обработки запроса от пользователя становится критической, приходится искать узкие места в системе. Часто больше всего времени занимает выполнение SQL запроса из приложения к базе данных. Попробуем разобраться, что можно оптимизировать в программе при работе с БД.
+13
Наводим порядок в Hierarchy View
4 мин
13KТуториал
Не так давно разработчики Юнити порадовали нас новой версией 4.5 (а в 4.6, совсем скоро, нас ждет новый GUI, ура!), и среди списка изменений один пункт касается сортировки в окне Hierarchy: «sorting of elements is now based on transform order instead of name».
Что это значит? Вы можете вручную перетаскивать элементы в окне иерархии в нужном вам порядке. И если раньше вы собирали сцену из расчета на автоматическую сортировку по имени, то теперь список объектов на сцене превратился в кашу.
Мы могли бы просто сделать как было… но сделаем лучше.
На картинке вы видите привычную сортировку по имени, за исключением трёх вспомогательных объектов, которые располагаются внизу. Кроме того ориентироваться на сложных сценах будет проще за счет цветовой дифференциацииштанов иконок.
Что это значит? Вы можете вручную перетаскивать элементы в окне иерархии в нужном вам порядке. И если раньше вы собирали сцену из расчета на автоматическую сортировку по имени, то теперь список объектов на сцене превратился в кашу.
Мы могли бы просто сделать как было… но сделаем лучше.
На картинке вы видите привычную сортировку по имени, за исключением трёх вспомогательных объектов, которые располагаются внизу. Кроме того ориентироваться на сложных сценах будет проще за счет цветовой дифференциации
+5
arcticModal — jQuery-плагин для модальных окон
1 мин
61KДля реализации модальных окон и диалогов существует немало плагинов jQuery. Перепробовав многие из них, я не нашёл ни одного, который бы достаточно просто и, что важно, правильно решал поставленную задачу.
Недавно SamDark писал о правильных модальных окнах и представил сообществу плагин The Modal. Полностью согласен с его виденьем модальных окон, но в представленном плагине не хватало функционала. У меня уже давно из проекта в проект кочевали наработки по этой же теме, вот решил тоже оформить их в виде плагина.
Недавно SamDark писал о правильных модальных окнах и представил сообществу плагин The Modal. Полностью согласен с его виденьем модальных окон, но в представленном плагине не хватало функционала. У меня уже давно из проекта в проект кочевали наработки по этой же теме, вот решил тоже оформить их в виде плагина.
+32
Основы многопользовательской игры на Unity3D
11 мин
160KТуториал
Привет, Хабрахабр!
Я, как и многие из вас, большой поклонник многопользовательских игр. В них меня прельщает в основном дух соревнования и возможность приобретать улучшения, накапливая достижения. Да и сама идея выхода в свет все большего количества игр данного типа побуждает к действию.
С недавнего времени я и сам взялся за разработку собственного проекта. И поскольку на Хабрахабре статей на эту тематику не нашел – решил поделиться своим опытом написания многопользовательской игры на движке Unity3D. Также хочу рассказать о компонентах Network и NetworkView, атрибуте RPC и встроенных методах-ивентах. В конце статьи подан пример игры и, разумеется, сам проект для Unity. Итак…
+29
Логирование в Java / quick start
7 мин
247KВ ходе моей работы в компании DataArt я, в числе прочего, занимаюсь менторской деятельностью. В частности это включает в себя проверку учебных заданий сделанных практикантами. В последнее время в заданиях наметилась тенденция «странного» использования логеров. Мы с коллегами решили включить в текст задания ссылку на статью с описанием java logging best practices, но оказалось, что такой статьи в которой бы просто и без лишних деталей на практике объяснялось бы как надо писать в лог на Java, вот так вот с ходу не находится.
Данная статья не содержит каких-то откровений, в ней не рассматриваются тонкости какого либо из многочисленных java logging frameworks. Здесь рассказываю как записать в лог так, чтобы это не вызвало удивления у Ваших коллег, основная цель написания включить ее в список обязательного чтения для практикантов. Если все еще интересно, читайте дальше
Данная статья не содержит каких-то откровений, в ней не рассматриваются тонкости какого либо из многочисленных java logging frameworks. Здесь рассказываю как записать в лог так, чтобы это не вызвало удивления у Ваших коллег, основная цель написания включить ее в список обязательного чтения для практикантов. Если все еще интересно, читайте дальше
+30
Многопоточность в Java: ExecutorService
2 мин
246KПеревод
В Java 5 было добавлено много вещей для организации многопоточности и особенно касаемо организации параллельного доступа. В этой и последующих статьях мы пройдемся по некоторыми из них.
+50
Высокопроизводительный NIO-сервер на Netty
9 мин
129KПреамбула
Здравствуйте. Я являюсь главным разработчиком крупнейшего в СНГ сервера Minecraft (не буду рекламировать, кому надо, те знают). Уже почти год мы пишем свою реализацию сервера, рассчитанную на больше чем 40 человек (мы хотим видеть цифру в 500 хотя бы). Пока всё было удачно, но последнее время система начала упираться в то, что из-за не самой удачной реализации сети (1 поток на ввод, 1 на вывод + 1 на обработку), при 300 игроках онлайн работает более 980 потоков (+ системные), что в сочетании с производительностью дефолтного io Явы даёт огромное падение производительности, и уже при 100 игроках сервер в основном занимается тем, что пишет/читает в/из сети.
Поэтому я решила переходить на NIO. В руки совершенно случайно попала библиотека Netty, структура которой показалась просто идеально подходящей для того, чтобы встроить её в уже готовое работающее решение. К сожалению, мануалов по Netty мало не только на русском, но и на английском языках, поэтому приходилось много экспериментировать и лазить в код библиотеки, чтобы найти лучший способ.
Здесь я постараюсь расписать серверную часть работы с сетью через Netty, может быть это кому-то будет полезно.
+74
Контейнер серверного java-кода с поддержкой постоянного соединения
14 мин
16KDisclaimer
Все, описанное в статье, является личным практическим опытом и не претендует на звание «истины в последней инстанции».
Преамбула
Здравствуйте. Я увлекаюсь созданием компьютерных игр. Моим любимым направлением, в котором я постоянно стараюсь совершенствоваться и узнавать что-то новое, являются браузерные многопользовательские игры.
Для создания прототипа для одной идеи в качестве контейнера сервлетов используется Apache Tomcat. Он общается с клиентской частью по http протоколу. Для такого типа игры схема вполне действующая, причем достаточно простая в реализации.
Но одной из преждевременных оптимизаций(да, это плохо, но тут я решил себе это позволить) стала идея использовать постоянное соединение между сервером и клиентом, т.к. в такой схеме не тратится время на открытие\закрытие соединения в каждом запросе. Для реализации схемы рассматривалось WebSocket API для Tomcat, но стало интересно написать свой велосипед, поэтому, встречайте рассказ о разработке под катом.
+6
+51
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность