metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-02-13 12:55 am

qt

Наконец, вместо того, чтобы копировать qt с компа на комп и копаться в его исходниках, немного побаловался с написанием программ. Выводы:
1) qt creator (и возможно, сам qt) еще таки дорабатывать и дорабатывать. Глючит-с. Мне кажется, что это не уровень RC, это таки сырая бета.
2) qt не использует стандартных виндовских контролов вообще, судя по тому, что spyxx не видит ничего в проге кроме топ-левел окна.
3) Способ разработки гуя достаточно интересен, некоторые вещи интуитивно понятнее и удобнее дельфей и вижуал-студии.
4) Надо написать хотя бы одну полноценную прогу на этом деле, чтобы таки осознать, стоит дергаться ради галочки "можно писать кроссплатформенный GUI".

[identity profile] zamotivator.livejournal.com 2009-02-13 02:43 pm (UTC)(link)
В некотором сферическом тесте в вакууме - безусловно.
На моих тестах издержки динамической диспетчиризации в цикле доходили до 40-60% времени.

И ровно столько же времени будет тратиться в эквивалентном коде на Си. Не бывает прироста производительности "нахаляву" - не виртуальная функция, ну так косвенный вызов по указателю на функцию.

В проекте, где я работаю (разработка СУБД) мы отказываемся от динамической диспетчеризации в пользу статической.

На С++ мы это описываем при помощи шаблонов. На Си... На Си нас бы спас только кодогенератор.

И это сравнение не пользу Си, удобства разработки на нём.

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