Зависимость работы обходчика от порядка сценарных функций
В Таблице 1 показано количество переходов, выполняемое обходчиками для построения обхода графов из раздела 3 при различных упорядочениях сценарных функций. C в этой таблице обозначает операцию создания нового потока, K - уничтожение одного из имеющихся потоков, U - помещение функции в стек обработчиков завершения потока, O - выталкивание функции из этого стека.
| ndfsm | dfsm | ndfsm | dfsm | |
| CKUO | 16 | 22 | 31 | 76 |
| CKOU | 16 | 22 | 29 | 76 |
| CUKO | 16 | 25 | 29 | 76 |
| CUOK | 13 | 25 | 27 | 88 |
| COKU | 16 | 19 | 30 | 88 |
| COUK | 13 | 25 | 27 | 88 |
| KCUO | 16 | 22 | 31 | 68 |
| KCOU | 16 | 22 | 29 | 68 |
| KUCO | 16 | 22 | 30 | 60 |
| KUOC | 16 | 22 | 30 | 60 |
| KOCU | 16 | 22 | 31 | 68 |
| KOUC | 16 | 22 | 31 | 59 |
| UCKO | 16 | 25 | 29 | 64 |
| UCOK | 13 | 25 | 27 | 69 |
| UKCO | 16 | 25 | 29 | 60 |
| UKOC | 16 | 25 | 29 | 60 |
| UOCK | 13 | 25 | 27 | 69 |
| UOKC | 16 | 25 | 31 | 69 |
| OCKU | 16 | 19 | 30 | 88 |
| OCUK | 13 | 25 | 27 | 88 |
| OKCU | 16 | 19 | 30 | 61 |
| OKUC | 16 | 19 | 31 | 55 |
| OUCK | 13 | 25 | 27 | 68 |
| OUKC | 16 | 25 | 31 | 68 |
Таблица 1. Длина строящегося обхода в зависимости от порядка сценарных функций.
Таблица 1 показывает, что, меняя только порядок обращений к сценарным функциям, можно добиться следующего ускорения более 35% для dfsm (сложный пример, сравнение CUOK и OKUC) и более 10% для ndfsm (сложный пример, CKUO и CUOK).
На рассмотренных примерах ndfsm демонстрирует более высокую производительность. Далее мы рассмотрим дополнительные примеры, подтверждающие это.