Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как оценить эффективность написания кода на стороннем языке? Си, си++, си шарп

An1Byte Мудрец (10841), закрыт 6 лет назад
Предположим кодируя к примеру на С#, мы доходим до момента где программе прийдется работать с большим потоком данных или с какими то ресурсами. По моему мнению, целесообразнее перейти на язык Си и Си++ для написания этого куска кода и подключить его к C# по ДЛЛ с явно заданным путем к либе и явно заданными именами всех функций. Вот возникает вопрос, само подключение ДЛЛ посути замедляет программу, но реализация функций поидее должна будет значительно ускорить вычислительные и приемо-передаточные задачи, из за разницы скорости конвертации разных кодов... Как определить когда следует писать ДЛЛ, а когда в ней нет необходимости... В приоритете скорость выполнения программы. Вопрос обобщенного характера... Мне важно понять, сильно ли отличается скорость С# программ, от таких же С# программ, но с реализацией кода на Си?
Лучший ответ
Голова Робота Просветленный (36364) 6 лет назад
Сначала надо написать хоть как-то и посмотреть, как будет работать. Может производительность и так достаточна. Есть такой инструмент - Profiler. Он помогает определить, какие функции больше всего тормозят. Переписать код на другом языке программирования - это не единственный способ увеличения быстродействия. Надо подключить мозг.

> Мне важно понять, сильно ли отличается скорость С# программ, от таких же С# программ, но с реализацией кода на Си

Это зависит от задачи, и от того, как именно написан код. Если в C# использовать LINQ вместо циклов, будет работать существенно медленней.
Нежелательно очень часто переключаться между Си и C# - это занимает некоторое время.
Надо тестировать, что быстрее работает, и насколько быстрее.
В C# есть режим unsafe с указателями. Тоже возможность оптимизации.
An1ByteМудрец (10841) 6 лет назад
Это в самом терминале есть этот профайлер?
Голова Робота Просветленный (36364) В каком терминале? Профайлер есть в IDE (не всегда). Но я никогда не пользовался.
Остальные ответы
Леха Романов Гуру (3065) 6 лет назад
неправильно!!!!
больше ни че не знаю)
Похожие вопросы