Wild Bill писал(а):Source of the post Это стандартная практика при составлении программ по численным методам, например, линейной алгебре.
Очень плохая - теряется портируемость, мультиплатформенность, код привязывается к конкретному компилятору. Спрос на такую библиотеку сразу падает: сливаю я библиотеку, хочу встроить в свой проект - под VS не компилится. Ладно, если там мелочь какую-нибудь подправить нужно, а если ассемблерные вставки перепиливать - это уже гемор.
Wild Bill писал(а):Source of the post Оптимизируется именно небольшой участок программы, поэтому нет смысла тратить ресурс ещё и на вызов процедуры и выход из неё.
В большинстве случаев компилятор сгенерирует лучший код, чем программист. Там много нюансов: режимы работы конвейера, кеша и пр. Некоторую последовательность команд проц может обработать за один такт, некоторую не может проглотить и за 10 тактов. По скорости x86 проги вообще очень сложно оптимизировать. Что же касается вызова - можно и библиотеку из инлайн функций линковать, и фасткол функции писать.. В большинстве случаев именно так и делается. Пример тому - библиотеки mmx инструкций, входящие в состав Visual Studio. Функции линкуются как инлайновые.
Во многих современных компиляторах C++, н-р VS x64, ассемблерные вставки вообще запрещены.
Последний раз редактировалось
spx-vnx 28 ноя 2019, 19:55, всего редактировалось 1 раз.
Причина: test