MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Почему написанная мной обертка для COM, работает быстрее чем то что предлагает .NET?"
Answer 1264694
Почему написанная мной обертка для COM, работает быстрее чем то что предлагает .NET?
...
IDXGIFactoryДело в том, что DirectX Использует особый облегченный вариант COM: https://docs.microsoft.com/ru-ru/archive/blogs/thomasolsen/introducing-the-microsoft-direct2d-api
Lightweight COM – Should use C++ style interfaces which model Direct3D usage. No support for proxies, cross-process remoting, BSTRs, VARIANTs, COM registration (e.g. the heavyweight stuff).
В DirectX используется API, основанный на IUnknown, и счетчики ссылок, но другие возможности COM, вроде регистрации COM-объектов в реестре, разных моделей многопоточности и т.п., не используются. Если обычный COM-объект создается через CoCreateInstance, то IDXGIFactory создается через отдельную функцию CreateDXGIFactory, которая не инициализирует возможности COM.
Но COM Interop в .NET рассчитан на полноценный COM, поэтому он довольно тяжелый. Этот код работает быстрее, потому что он с нуля реализует поддержку облегченного COM.
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.