пятница, 17 февраля 2017 г.

Оптимизация типов в современных компиляторах C++



С. Макконнелл в своей замечательной книге даёт рекомендацию вида "Создавайте типы с именами, отражающими их функциональность" ("Совершенный код", с. 307) и предлагает рассмотреть выделение их в классы.

По идее, это значит, что, даже для каких-нибудь типов предметной области, которые можно выразить через базовые типы языка предлагается выделять класс, чтобы ограничить его функционал и не дать написать ерунду. Логично? Логично.

С другой стороны, возникает вопрос: а какой может быть оверхед по производительности на выполнение такой рекомендации? По идее, хотелось бы, чтобы компилятор убирал все типы, которые тупо оборачивают базовые типы данных и оставлял только голые операции с базовыми типами.

Я решил проверить производительность в таком случае, как полагается, с просмотром результатов дизассемблирования и получил довольно интересные результаты.

понедельник, 30 января 2017 г.

Мой опыт с Visual Studion 2017 RC

Недавно из праздного интереса решил поставить Visual Studion 2017 RC. После беглого просмотра решил переводить pet-проекты на него. Потому что это неожиданно очень годная версия студии.

понедельник, 12 декабря 2016 г.

Ускоряем юнит-тестирование в Moodle

Уже давно заметил, что юнит-тестирование через PHPUnit в Moodle бывает, что выполняется ну ОЧЕНЬ медленно - 10-15 секунд для одного теста, а порой и минуту.  Поэтому решил сделать небольшую заметку по тому, как можно обойти эту проблему.

ВНИМАНИЕ: впереди жуткие костыли и хаки

суббота, 10 декабря 2016 г.

NW.js и Javascript для десктопа

Как-то летом, просматривая одну лекцию, пришла в голову мысль о том, что неплохо иметь какую-нибудь штуковину на десктопе, которая бы показывала из папки какие-нибудь tip of the day,  которые бы раз в день менялись, позволяя освежать знания в голове. 

воскресенье, 6 ноября 2016 г.

Minecraft + отличная графика = Terasology

Недавно набрел на забавную игру на гитхабе - Terasology. По сути, люди делают из изначально демки с использованием вокселей полноценную игру с геймплеем от MineCraft с такой-то ГРАФИКОЙ. Скриншоты выглядят чертовски круто, но сама игра в грубокой преальфе. Поэтому набросал небольшой несерьезный пост по игре.

суббота, 22 октября 2016 г.

Re: Qt Script not dead

В прошлый раз я написал о том, что по-хорошему, с Qt Script надо бы куда-нибудь мигрировать пока не поздно..

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

С этой целью и решил сделать свою библиотеку и привязать возможность скриптования с использованием Qt через Duktape, как основного движка для JS.

суббота, 15 октября 2016 г.

Когда Q_DECLARE_METATYPE недостаточно

Недавно столкнулся с ситуацией, когда макроса из заголовка оказывается недостаточно для полноценной работы с рефлексией и слотами в Qt.