В рамках подготовки к релизу CFW 0.8 была осуществлена небольшая переработка обработки исключений в СRTL и CSRTL. После проведения работ было решено провести сравнение скорости получившихся реализаций с реализацией из стандартной RTL FPC, а также сравнить между собой два подхода к реализации обработки исключений SjLj (используемых FPC в Unix системах) и SEH (обязательный для Win64).
Окт 06 2016
Результаты переработки многопоточной реализации генерации простых числе для RSA и DH
Ещё весной, во время реализации DHE, я обратил внимание на плохую масштабируемость генерации ключей, хотя в теории этот процесс должен параллелиться почти идеально. Получалось же что RSA хоть как-то параллелиться до 4-х потоков, а DH вообще до 2-х. После небольшого расследования причин и соотв. переработки алгоритмов было произведено небольшое тестирование: среднее время генерации ключа на серии из 100 ключей в зависимости от размера ключа и кол-ва потоков. Ниже привожу результаты (тестирование проводилось на Xeon-D 1540).
Июн 05 2016
Разработка Cat Server Platform разморожена
Наконец-то возобновились работы над CSP и прояснились перспективы её дальнейшего развития.
В первую очередь это вызвано началом глубокой переработкой внутренней инфраструктуры Cat Company.
Текущая инфраструктура (как аппаратная, там и программная её части) была заложена в 2011 году и с тех пор получала лишь косметические изменения. А некоторые концептуальные подходы к организации обеспечения работы и вовсе датируются 2007-м годом. Всё это начало выливаться в то, что эта инфраструктура уже мало соответствовала как текущим требованиям к организации работ, так и текущий требованиям к информационной безопасности. Кроме того поддержание её работоспособности начинало требовать всё больше и больше времени. В связи с этим с начала 2015 года началась разработка плана по её модернизации.
Май 08 2016
Бюллетень шифрования для сетевого обмена
Фев 17 2016
Работа над протоколом SNT/IP и его реализацией завершена
Недавно была завершена работа над сетевым протоколом SNT/IP (часть компонента SkyNT), разрабатываемым для Sky Engine 2, его референсной реализацией и эмулятором сети для её тестирования и отладки. Полученные характеристики протокола хоть и оказались несколько хуже ожидаемых при начале работы, но вполне приемлемые:
Янв 18 2016
О результата тестирования сети при разработке протокола SNT/IP
Ещё в мае 2012 года я начал небольшой R&D проект по созданию сетевого протокола для нужд MMORPG с no-target системой боя. Теоретическая часть была почти закончена ещё в 2012 году, но дальше проект был заморожен из-за наличия более приоритетных задач. И вот в начале декабря 2015 года работы над ним были возобновлены.
Дек 24 2015
Небольшое тестирование TSX
Некоторое время назад ко мне в руки попал компьютер на базе Intel XEON D-1540 с поддержкой расширения TSX. Я давно уже хотел устроить хотя бы небольшое тестирование этого расширения, т.к. оно выглядит крайне интересно. Причём интерес вызывает как “бесплатная оптимизация” многопоточных приложения через HLE-префиксы (тем более что она не ломает обратную совместимость кода), так и полноценное использование транзакционной памяти в сложных сценариях.
Июл 18 2015
Релиз: Cat Framework 0.6 + Cat Server Platform 0.6
Сегодня состоялся третий релиз нашего фреймворка Cat Framework. Это первый релиз Cat Framework, который выпускался по полноценной схеме: разработка -> заморозка функционала и выпуск RC -> исправление ошибок в RC -> релиз. В рамках данного релиза произведена масштабная переработка структуры фреймворка. Данный релиз будет положен в основу нового проекта команды – SkyGL.
Как обычно приведу некоторою статистику. От релиза CFW 0.4 релиз CFW 0.6 отделяют 173.5 часов работы, 16 закрытых задач в Redmine, ~68 ревизий SVN. Размер фреймворка составляет 2510+287КБ (в 157+43 файлах). Фреймворк насчитывает 33899/3352/3525 + 2825/289/294 строк кода/строк комментариев/пустых строк.
Май 31 2015
Работа над аудио-микшером движка завершена
Недавно была завершена работа над аудио-микшером движка SkyEngine2 (не путайте аудио-микшер с аудио-рендером). При разработке микшера ставились следующие задачи:
- Все звуки и музыка должны иметь частоту дискретизации в 48KHz и разрядность в 16 бит
- Микширование должно производиться в формате Float32
- Возможность воспроизведения фоновой музыки с плавной сменой музыкальных тем
- Отсутствие необходимости удерживать в оперативной памяти данные всего музыкального трека (chaining)
- Возможность воспроизведения до 64-х стерео звуков с независимой задачей громкости для каждого из них
- Минимизация затрат памяти, особенно оперативной, на хранение данных звуков и музыки
- Возможность генерировать звуковые пакеты различной длинны (480, 800, 960, 1200, 1600, 1920 или 2400 звуковых отсчётов)
Мар 09 2015
0.6RC для Cat Framework + Cat Server Platform
После 4-х месяцев разработки Cat Framework + Cat Server Platform они выходят на release candidate в версию 0.6. Все необходимые изменения для версии 0.6 сделаны, но её релиз задерживается из-за необходимости быть полностью уверенными в качестве кода, т.к. возможно этот код будет использоваться в коммерческом продукте.
В рамках работы над версией 0.6 была проведена значительная работа над изменением внутренней структуры библиотеки, переименования модулей в соотв. с новой схемой именования и дедупликацией кода. Как обычно приведу некоторою статистику.
От версии 0.4 версию 0.6RC отделяют 173.5 часов работы, 16 закрытых задач в Redmine, ~55 ревизий SVN. Размер фреймворка составляет 2440+287КБ (в 155+43 файлах). Фреймворк насчитывает 39811+3408 строк кода. Кроме того, теперь я перехожу на учёт кол-ва строк с помощью утилиты cloc, которая позволяет отделять код от пустых строк и комментариев. Так что все новые результаты будут в формате: строк кода/строк комментариев/пустых строк. Для 0.6RC её результаты таковы: 33078/3297/3436 + 2825/289/294.