Re[16]: Школа С++ от UNIGINE
От: alex_public  
Дата: 11.03.17 08:27
Оценка:
Здравствуйте, AlexGin, Вы писали:

_>>Однако если мы возьмём какую-то из мощные библиотек многопочности мира C++ (все они естественно кроссплатформенные), то увидим инструмент на голову превосходящий и все возможности стандартной библиотеки C++ и все возможности WinAPI.

AG>Можешь посоветовать что-то конкретное?
AG>То, что позволяет удачно совместить удобочитаемость кода с эффективностью.

Если говорить о классической многопоточности, то чуть-чуть более мощными чем стандартная библиотека C++ являются Boost.Thread и QThread (да, да, в используемой вами Qt уже есть не плохая поддержка многопоточности). Но если требуется действительно мощный инструмент, то лучше смотреть на что-то вроде TBB от Intel.

Если же говорить о многопоточности по модели акторов (она удобнее и безопаснее в очень многих случаях), то тут однозначно выбор будет между SObjectizer (кстати разработчики присутствуют на данном форуме) и CAF (более глобальное решение).

_>>Ну вот, т.е. получается у вас тоже практически кроссплатформенный (в потенциале) продукт

AG>
AG>Теоретически да, кроссплатформенный. ...это как в анекдоте — чем отличается теория, от практики...

Ну естественно, что если вам вдруг поставят задачу сделать своё ПО кроссплатформенным и вы пойдёте его компилировать и тестировать на других платформах, то скорее всего вылезет определённое количество ошибок и недоработок. Это нормальная ситуация. Принципиальная разница тут в другом — вам на исправление подобного понадобится какое-то количество дней. А вот если бы ваше приложение было написано на WinAPI (к примеру), то задачу сделать его кроссплатформенным вам бы пришлось решать какое-то количество месяцев или лет. )))

_>>Ну так если у тебя есть внешняя утилита для генерации этих h файлов по tlb, то зачем тогда эта директива?

AG>Утилита genidl, о которой ты пишешь, входит в комплект продукта MinGW.
AG>Если я пользуюсь продуктом MSVC, мне нет необходимоти применять genidl.
AG>Применение директивы препроцессора #import:
AG>https://msdn.microsoft.com/en-us/library/8etzzkb6(VS.71).aspx
AG>рассчитано так, чтобы НЕ пересоздавать заголовочники для COM компонента, который ранее уже был импортирован в проект.

В MSVC (а точнее в WindowsSDK) так же имеются все необходимые инструменты для подобного (там есть и экстрактор idl из tlb и компилятор idl). Так что никакой пользы от данной инструкции нет.

_>>Если речь по быстродействие генерируемого кода, то это полная чушь — MinGW генерирует заметно более эффективный код. Я лично делал тесты.

AG>В данной ветке я уже привёл результаты сравнения эффективности
Автор: AlexGin
Дата: 10.03.17
, доказывающие (по самым скромным оценкам), что MSVC в полтора/два раза эффективнее, нежели MinGW.


Я уже ответил на данное сравнение. ))) И кстати могу ещё посоветовать на будущее изучить опции gcc перед его использованием, потому как его дефолтный режим мягко говоря далёк до максимальной производительности.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.