28.01.2006:
Основание: Первичная оценка производительности виртуальной машины системы OpenSCADA на основе выражения "y=x1+x2", где все переменные глобальные вещественного типа.
Стадия | Действие | K7_1G-0, мкс |
1 | Инициализация списка регистров | 2.3 |
2 | Вход в функцию exec() | 3 |
3 | Обход команд | 4.4 |
4 | Чтение | 9 |
5 | Полное время | 10.2 |
17.07.2013:
Основание: Обоснование текущей производительности, оценка и оптимизация. Измерения проводились выборкой минимального времени из пяти вызовов по 1000 исполнений формулы "a -= b*(a-c)" и её сокращений в каждом вызове. Все переменные глобальные вещественного типа.
Formula | Time on AMDGeode-500 (the operation time), мкс | Notes |
a -= b*(a-c) | 4.52 (0.74) | |
a -= b*c | 3.78 (0.72) | |
a -= b | 3.06 (0.56) => full cal: 3.06 (0.49): getValR() = 0.49/2 = 0.245 => only write const = 2.57 (0.17) => pass.code = 2.4 | |
a = b | 2.5 (1.21) !> use unified TVariant function setVal() and getVal() = 7.6 (2.7 write only) => fix to 5.0 by prevent default set to string EVAL. => full cal: 2.5 (0.33) => only write const: 2.17 (0.47) => only check for type: 1.7 (0.3) => pass code: 1.4 (0.11) | Write to function IO is longer then read from local register by other context call and additional checking for NAN and real modification. |
Empty | 1.29 | Infrastructure and measurement method utilization time. |