Ну пока все рассказывают от чего зависит FPS, я расскажу как организовать "попугаеметр".
Начнем с того, что такое тот самый F (Frame) который Per Second. Это полностью отрисованная в 3D буфере сцена. После того, как мы установили все объекты, света, текстуры и прочий ливер на надо скинуть эту сцену в видеокарту. Для этого используется функция glFlush() в OpenGL или EndScene() в D3D. В UE этот вызов обернут (ЕМНИП) в D3DRenderDevice::Flush
Таким образом, нам надо хукнуть эту функцию, и считать ее количество вызовов.
ОТлично, количество фреймов мы получили. Как теперь их вывести?
А вот тут вариантов полно. Вы можете сделать это средствами UE (через метод UCanvas:

rawTextToCanvas) или же через работу напрямую с DX сценой, ибо ПЕРЕД вызовом Flush у вас вполне нормальная, открытая сцена.