Занимает ли Application.cfc больше времени на выполнение, чем Application.cfm?

Мы переходим с Adobe ColdFusion 8 на 10. У нас есть приложения, использующие Application.cfm. Мы решили начать использовать Application.cfc, так как он предлагает более индивидуальный подход. Я проверял, как преобразовать Application.cfm в Application.cfc и заметил, что Application.cfc с тем же объемом кода, что и в Application.cfm, требует больше времени на выполнение, чем при использовании Application.cfm. Например, если Application.cfm занимает 150 мс, то Application.cfc — 630 мс. Вот как это?

Я не стал вдаваться в другие подробности. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

Спасибо.


person Karthik Swaminathan    schedule 14.10.2016    source источник
comment
Может быть, так оно и есть, может быть, это ваш код. Просто разберитесь с этим и используйте Application.cfc. Преимущества перевешивают любые мелкие проблемы с производительностью.   -  person Adrian J. Moreno    schedule 14.10.2016
comment
Есть ли в вашем файле .cfm связанные файлы для onSessionStart и т. д.? Если да, то поместили ли вы весь код в соответствующие функции в .cfc?   -  person Dan Bracuk    schedule 14.10.2016
comment
Спасибо @AdrianJ.Moreno за ваш ответ. Мы собираемся использовать Application.cfc, никаких сомнений по этому поводу. Просто хотелось узнать.   -  person Karthik Swaminathan    schedule 15.10.2016
comment
Спасибо @DanBracuk за ваш ответ. У нас есть пара файлов для сессий. Application.cfm имеет определенное назначение переменных области запроса и некоторый код для авторизации/неавторизации использования определенных страниц определенными пользователями. В нем также есть некоторый код для обработки ошибок.   -  person Karthik Swaminathan    schedule 15.10.2016


Ответы (1)


Я обнаружил, что application.cfc работает быстрее, чем application.cfm, но уже много лет я не использую application.cfm. Я склонен согласиться с Адрианом, что это может быть ваш код.

Вы можете использовать getTickCount(), чтобы отслеживать, сколько времени занимает выполнение разделов вашего кода.

В приведенном ниже примере будет отслеживаться время выполнения всего запроса. Вам нужно будет зарегистрировать или вывести окончательное значение local.loadTime. Вы можете рассчитать разницу между значением tickCount до и после любого блока кода, чтобы узнать, сколько времени потребовалось для его выполнения.

boolean function onRequestStart() {
    request.startTime = getTickCount();
    return true;
}

void function onRequestEnd() {
    if (structKeyExists(request, "startTime") && request.startTime > 0) {
        local.loadTime = getTickCount() - request.startTime;
    }
}
person Kevin Morris    schedule 12.12.2016