Июл 27 2013

RISC vs CISC

В последнее время часто сталкиваюсь с мнением что будущее за RISC процессорами. Особенно часто в этом контексте звучит что в скором времени ARM вытеснит x86_64 из серверов, рабочих станций и настольных компьютеров. Несогласие с данной точкой зрения и побудили меня написать данную заметку для изложения своего взгляда на ситуацию.

Подробнее »

Май 11 2013

SkyUD Server

В настоящий момент подходит к своему концу разработка системы обновления SkyUD, входящей в наш движок SkyEngine2. И т.к. разработка сервера для этой системы уже полностью завершена, то можно подвести некоторые итоги.

Подробнее »

Апр 15 2013

Переезд на новый сервер

В связи со сносом дата-центра, в котором был расположен наш сервер, осуществляется переезд на новый сервер. В период с 16-го по 31-го мая возможны перебои в работе сайта. Заранее приносим извинения за возможные неудобства.

 

Обновление от 18-го числа: переезд полностью завершён.

Фев 07 2013

Дела давно минувших дней…

Недавно возникла необходимость повторно запустить свою первую 3D-демку, находившуюся в разработке с начала февраля по конец мая 2006 года. В то время разработка велась на Delphi7 для Window XP SP2 с использование DirectX 9.0c. После завершения разработки собранная демка была заархивирована и длительное время хранилась в файловом хранилище.

При попытке запустить её сейчас приложение немедленно упало без каких либо причин (а ведь работало же). Немного повозившись стало ясно что запускать требуется с режимом совместимости с Windows XP SP2 и отключенным Aero (через флаги режима совместимости). Демка запустилась, но вместо изображения весь экран просто закрасило одним цветом. При попытке перемещаться и/или осматриваться цвет менялся.

Решив все-таки не отступать я начал отладку PIX`ом и обнаружил интересную вещь. Для вывода SAQ (Screen Aligment Quad) использовался нулевой вершинный шейдер (SetVertexShader(Nil)). Исходные вершины предоставляли позицию, нормаль и текстурные координаты. Пиксельный шейдер требовал только текстурных координат. В то время всё работало как часы, но сейчас в пиксельный шейдер почему-то стали передаваться всегда нули. Исправление этой ошибки заняло всего 2-3 минуты, но осадок остался.

Кроме того т.к. сейчас Delphi я уже не использую, то пришлось его специально ставить, а под рукой был только XE3. Я было понадеялся что соберётся и им (код простой, никакого VCL не использует), но и тут меня ждало разочарование. Мало того что новенький Delphi умудрился получить исполняемый файл размером 1034КБ (версия собранная Delphi7 имела размер всего 159КБ), так он еще и отказался работать.

Вот такая вот она, обратная совместимость 🙂
Подробнее »

Дек 16 2012

Разработка первой версии CSL завершена

Сегодня было завершено создание первой версии Cat Server Linux – нашего дистрибутива Linux для платформы x86_64, предназначенного для развёртывания серверных приложений созданных на основе CSRTL (и опционально CSO). При создании основной упор делался на минимализм и простоту дистрибутива. CSL занимает на диске всего 6,1МБ, не содержит разделяемых библиотек и при запуске потребляет менее 16МБ ОЗУ. При этом CSL поддерживает работу как с IPv4, там и с IPv6, имеет все необходимые утилиты, Syslogd, SSH-сервер, RSync. Сразу хочу отметить, что CSL не является заменой какому-либо стандартному дистрибутиву, вроде CentOS, и служит сугубо для решения узкого круга задач.

В процессе тестирования дистрибутива проводилось также тестирование уже знакомого нам TCPEcho-сервера, но теперь собранного на базе новой версии CSO.

Подробнее »

Ноя 27 2012

Тестирование скорости обработки сообщений в CatServerObjects

Разработка CSO медленно, но уверенно продвигается к своему логическому завершению. И если изначально CSO задумывалась как библиотека для реализации многопоточного асинхронного TCP-сервера, то в процессе разработки она трансформировалась в библиотеку многопоточной асинхронной обработки сообщений с поддержкой работы с файловыми дескрипторами (в том числе со специальными классами для реализации TCP-сервера). Классы связанные с TCP-соединениями и таймера еще не полностью закончены, а вот основная часть уже полностью готова. Недавно я уже проводил сравнение различных интерфейсов передачи сообщений в Linux. Теперь пришло время протестировать скорость обработки сообщений. Для проведения тестирования был избран сценарий обработки echo-сообщений, подробнее о котором далее.

Подробнее »

Ноя 09 2012

Сравнительное тестирование механизмов передачи сообщений в Linux

При переработке CatServerObjects столкнулся с необходимостью выбора механизма передачи сообщений между потоками приложения. Для требуемой очереди были сформированы следующие требования:

  • FIFO порядок обработки
  • Поддержка сообщений различных размеров, но с возможностью наличия верхней границы
  • Поддержка блокировки потока на время ожидания данных
  • Поддержка работы с EPoll

Подробнее »

Окт 18 2012

TCP-echo сервер на основе первичной версии CSO

Несколько дней назад провёл стресс-тест TCP-echo сервера (входит в примеры CFW). И получились довольно любопытные результаты.

Подробнее »

Окт 17 2012

Годовой отчёт о разработке Cat Framework

Привожу некоторый статистические данные по этому проекту:
Подробнее »

Сен 08 2012

Разработка CatServerRTL завершена

При начале работ над сервером для системы обновления остро встал вопрос об создании своей RTL, уж слишком много претензий было в стандартной. Основными из них были:

  • Медленная и избыточная реализация threadvar (а через них, как минимум, реализовывался errno)
  • Медленная реализация исключений, к тому же требовавшая создания экземпляр класса и как следствие выделения памяти
  • Неясное поведение стандартного хипа

По мимо перечисленных были  и другие, не столь значимые, проблемы, вроде огромнейших дыр в переводе заголовков Linux (например отсутствие заголовков EPoll). Принимая во внимание сравнительно небольшой объём работы необходимый для создания своей узкоспециализированной RTL, было принято решения начать разработку CatServerRTL.

Подробнее »

Предыдущие сообщения «

» Более новые сообщения