Мгновенный старт приложения новейшей версии любимой ERP поражает воображение у всех, кто когда-либо был этому свидетелем. В процессе выяснения причин, почему же так долго, наткнулся на такую вещь - при запуске клиента идут множественные вызовы метода Global\isRunningMode, и каждый вызов тянется несколько секунд. Стек вызова выглядит подобным образом
X++:
\Classes\SysModelStore\isInstallMode
\Classes\SysCheckList_SetupPartition\isSetupMode
\Classes\Application\isRunningMode
\Classes\Global\isRunningMode
Наконец, в методе isInstallMode вызывается функция axutil.RetrieveInstallModeState(), которая в свою очередь выполняет хранимку XU_GetDirtyFlag, которая в свою очередь нафиг зашифрована.
И есть у меня обоснованное подозрение, что именно ее вызов отнимает порой час-другой моего рабочего дня. Кто-нибудь что-нибудь знает об этой процедуре?
И еще вопрос - есть ли у кого предположения, почему isRunningMode не кэшируется?