
Сообщение от
capzap
vladimirisitnikov опять со своим уставом в чужой монастырь
Мне преподаватель геометрии в школе говорил простую вещь: "Делай хорошо, плохо само получится".
Есть правила "хорошего замера производительности", и они не зависят от платформы.
Вы бы ещё сравнивали скорость выполнения математических операций таким способом:
Код:
FOR i:=1 TO 10 DO
tmp := tmp + 2+3*4+5*6+7*8+9+10;
А потом внезапно обнаружили, что КДС вычисляет это выражение (2+3*4+...) на уровне компиляции, и всё ваше "сравнение скорости" превращается в фиг знает что.
Вон, КДС'овцы пишут, что какие-то оптимизации КДС-таки делает: http://forum.codesys.com/viewtopic.php?f=11&t=5384
>1. Expressions containing CONSTANT values are pre-evaluated during compilation.
Yes

Сообщение от
capzap
Есть у Вас объяснение, почему при бесконечном цикле, контроллер уходит в перезагрузку, по Вашему же компилятор должен выкинуть пустые никчемные циклы
Смотрите: то, что "длинный цикл вызывает перезагрузку", да говорит о том, что цикл не выкидывается (или какая-то его часть остаётся). Но это никак не говорит о том, остаётся ли работа со всеми переменными (даже теми, которые больше нигде не используются, и не могут быть видны извне).
Даже если окажется, что КДС2 тупой как бревно и ничего не оптимизирует (судя по ссылке выше, что-то КДС всё-таки оптимизирует), то в КДС3 может оказаться по-другому. Кто-то начнёт сравнивать ПЛК vs СПК "одним и тем же кодом" и получит "странное".

Сообщение от
Yegor
Да чё гадать. Отладчиком пошагать по этому коду, и будет более-менее ясно, что выкинуто и что оставлено. Почти уверен, что всё будет на месте.
Поведение "под отладкой" и "в боевом режиме" может отличаться. Т.е. для целей отладки код может генерироваться более медленный, и без оптимизаций, а в простом режиме -- с оптимизациями.