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. |