Наконец, вместо того, чтобы копировать qt с компа на комп и копаться в его исходниках, немного побаловался с написанием программ. Выводы:
1) qt creator (и возможно, сам qt) еще таки дорабатывать и дорабатывать. Глючит-с. Мне кажется, что это не уровень RC, это таки сырая бета.
2) qt не использует стандартных виндовских контролов вообще, судя по тому, что spyxx не видит ничего в проге кроме топ-левел окна.
3) Способ разработки гуя достаточно интересен, некоторые вещи интуитивно понятнее и удобнее дельфей и вижуал-студии.
4) Надо написать хотя бы одну полноценную прогу на этом деле, чтобы таки осознать, стоит дергаться ради галочки "можно писать кроссплатформенный GUI".
1) qt creator (и возможно, сам qt) еще таки дорабатывать и дорабатывать. Глючит-с. Мне кажется, что это не уровень RC, это таки сырая бета.
2) qt не использует стандартных виндовских контролов вообще, судя по тому, что spyxx не видит ничего в проге кроме топ-левел окна.
3) Способ разработки гуя достаточно интересен, некоторые вещи интуитивно понятнее и удобнее дельфей и вижуал-студии.
4) Надо написать хотя бы одну полноценную прогу на этом деле, чтобы таки осознать, стоит дергаться ради галочки "можно писать кроссплатформенный GUI".
no subject
Date: 2009-02-13 01:28 pm (UTC)1) Более строгая типизация даёт более хорошие оптимизации
2) Константность даёт оптимизации
Во всём остальном производительность С и С++ совпадает. При условии нормального компилятора, естественно.
no subject
Date: 2009-02-13 01:43 pm (UTC)no subject
Date: 2009-02-13 01:49 pm (UTC)А вообще, там где есть надобность в виртуальных функциях, обычно не до производительности, скажем так. Там больше внимания уделяется кошерности архитектуры и ее поддерживаемости в будущем, нежели мелочам типа 6-13%
no subject
Date: 2009-02-13 02:11 pm (UTC)К вопросу о длинне сиволов и дизайне: “well designed” C++ projects with many namespaces, templates, and nested classes can feature names with more than 1,000 characers. One plus point for design, but minus 100 points for performance." (C) Ulrich Drepper
no subject
Date: 2009-02-13 02:14 pm (UTC)А рунтайм перфоманс по моему не должен зависить от длины имен.
no subject
Date: 2009-02-13 02:16 pm (UTC)no subject
Date: 2009-02-13 02:20 pm (UTC)no subject
Date: 2009-02-13 02:44 pm (UTC)no subject
Date: 2009-02-13 03:15 pm (UTC)no subject
Date: 2009-02-13 03:28 pm (UTC)Назови хоть одну кроссплатформенную библиотеку на Си, что покроет всю функциональность буста.
Interprocess, Threads, Filesystem для затравки.
Function, Bind для продолжения.
MPL на закуску.
no subject
Date: 2009-02-13 06:22 pm (UTC)no subject
Date: 2009-02-13 06:25 pm (UTC).NET Framework - помойка, это да. дотНетовский и Дельфятский подход - искать компоненты. Сам по себе подход неплох, реализация подкачала - это точно.
И boost, и qt мне нравятся как раз своей модульностью, продуманостью, и минималистичностью.
Я могу из boost'а собрать лишь один кусочек - boost.threads или boost.interprocess, и лишь его линковать/включать dll/so в сборку.
no subject
Date: 2009-02-13 06:25 pm (UTC)З.Ы. я линуксоид, если что =)
no subject
Date: 2009-02-13 02:17 pm (UTC)no subject
Date: 2009-02-13 02:46 pm (UTC)И опять же, Qt работает гораздо быстрее - если вы дадите аппликуху, что очень быстро загружается (допустим, 1 миллисекунда против 5 секунд Qt) но работает в два раза медленней Qt, как вы думаете, что при этом выберет пользователь?
no subject
Date: 2009-02-13 02:43 pm (UTC)На моих тестах издержки динамической диспетчиризации в цикле доходили до 40-60% времени.
И ровно столько же времени будет тратиться в эквивалентном коде на Си. Не бывает прироста производительности "нахаляву" - не виртуальная функция, ну так косвенный вызов по указателю на функцию.
В проекте, где я работаю (разработка СУБД) мы отказываемся от динамической диспетчеризации в пользу статической.
На С++ мы это описываем при помощи шаблонов. На Си... На Си нас бы спас только кодогенератор.
И это сравнение не пользу Си, удобства разработки на нём.
Резимюруя: такие издержки будут в любом языке программирования. И их оптимизация - не смена языка, переписав код на другой язык вы получите ровно ту же картину с точностью до констант или погрешностей измерения. Прирост в разы будет если пересмотреть саму структуру решения.