> А куда делся (declaim (optimize (speed 3)) ...) в программах? Разве сбцл учитывает всю информацию о типах без этого?
Да, учитывает (по крайней мере, в простых примерах (типа сложения двух чисел) ассемблерный код с (speed 3) и без оного получается идентичным). А вот (safety 0) исключает из генерируемого ассемблера проверки на соответствие типов в рантайме декларируемым, что, в принципе, может чуть ускорить исполнение. Но пользоваться этим надо аккуратно, ибо если тип окажется неправильным - можно поиметь весёлые глюки.
Comments 28
Reply
Reply
Reply
Reply
(The comment has been removed)
Reply
Reply
Да, учитывает (по крайней мере, в простых примерах (типа сложения двух чисел) ассемблерный код с (speed 3) и без оного получается идентичным). А вот (safety 0) исключает из генерируемого ассемблера проверки на соответствие типов в рантайме декларируемым, что, в принципе, может чуть ускорить исполнение. Но пользоваться этим надо аккуратно, ибо если тип окажется неправильным - можно поиметь весёлые глюки.
Reply
Reply
Leave a comment