В связи с нашествием спам-ботов база данных пользователей была почищена. Приносим свои извинения за доставленные неудобства.
Янв 11 2014
Первые результаты RnD-проекта по сжатию изображений
Некоторое время назад для нужд хранения картинок в запускающем приложении была начата разработка своего формата хранения изображений в сжатом виде.
К создаваемому формату предъявлялись следующие требования:
- Высокая скорость загрузки (не более 50мс на изображение 1024×1024 в формате RGB8)
- Поддержка сжатия как без потерь, так и с потерями
- Поддержка форматов изображения: G8, GA8, RGB8, RGBA8
- Поддержка, при сжатии изображения RGBA8 с потерями, специального режима когда альфа-канал сжимается без потерь
Дек 05 2013
R&D-проект по сжатию общего назначения закончен
Некоторое время назад встал вопрос о необходимости библиотеки для сжатия assert`ов в движке. На тот момент для этих целей использовалась библиотека LZO (к слову, единственная используемая мной сторонняя библиотека), однако из-за её GPL-лицензии надо было или покупать её pro-версию, или менять на что-то другое (возможно даже своё). Кроме того, давно назревал вопрос о целесообразности использования для поставленной задачи именно алгоритма семейства LZ77. С целью сбора и анализа данных о различных алгоритмах сжатия в контексте указанной задачи и был начал этот R&D проект.
Ноя 11 2013
SHLD/SHRD или сказ о том, как я “Intel® 64 and IA-32 Architectures Software Developer’s Manual” читал
Периодически, когда у меня выдаётся несколько свободных минут, но их маловато чтобы сделать что-то полезное, я убиваю время чтением “Intel® 64 and IA-32 Architectures Software Developer’s Manual”. И вот позавчера, во время очередного такого чтения, я наткнулся на описание инструкций SHLD/SHRD. Уж не знаю как я их до этого не замечал, но факт остаётся фактом – в реализации работы с большими числами их сдвиги были реализованы через SHL/SHR. И я это отчётливо помнил.
Естественно прочитав про “новые” инструкции я сразу же нашел часик на исправление текущей реализации. Результаты просто отличные – время выполнения операций сдвига больших чисел сократилось в 1.5(!) раза. Хотя конечно общий прирост производительности RSA невелик, но с другой стороны общий прирост производительности на ~5.5% это тоже не так уж и мало.
Окт 17 2013
Годовой отчёт о разработке Cat Framework
Окт 05 2013
Разработка SkyUD завершена
Собствено сабж 🙂 Когда разработка начиналась она планировалась как кратковременая задача, однако жизнь распорядилась иначе – с момента начала работы до релиза прошло 1.5 года.
Окт 01 2013
Первый резил Cat Framework
Сегодня состоялся первый релиз нашего фреймворка Cat Framework. И хотя этот релиз предназначен только для внутреннего использования это всё равно знаковое для нас событие. Как обычно приведу некоторою статистику.
От начала разработки CFW 0.2 отделяют 654 часов, 31 закрытая задача в Redmine, 96 ревизий SVN. Размер фреймворка составляет 2294КБ (в 205 файлах). Фреймворк насчитывает 42262 строк кода (исходный код: 29788 строк, юнит-тесты: 5436 строк, бенчмакри: 3466 строк, примеры: 3572 строки).
Начиная с версии 0.3 поддержка CatTorrent прекращается.
Авг 24 2013
Переработал пул сообщений в CSO
В рамках подготовки к релизу CFW 0.2 проводил провожу переработку CSO. Во время выделения глобального пула сообщений в отдельный файл решил попробовать переписать его на asm`е. Сам по себе пул вроде не сложный, так что по идеи компилятор должен выдавать более-менее приличный код.
Простейший тест в котором каждый поток сначала выделял, а потом освобождал 32768 сообщений показал следующее (кол-во пар выделение+основбождение в млн. в секунду):
1 поток | 2 потока | 3 потока | 4 потока | 5 потоков | 6 потоков | |
Реализация на Pascal | 17.38 | 40.98 | 54.78 | 72.31 | 78.83 | 86.22 |
Реализация на Asm | 20.57 | 47.25 | 75.06 | 91.21 | 106.11 | 109.08 |
Ускорение от перехода на Asm | +18.4% | +15.3% | +37% | +26.1% | +34.6% | +26.5% |
Переход на Asm даёт выигрыш от 15.3% до 37%, т.е. в среднем получает где-то 25%.