The easiest way to start is to call PROFILE_BEGIN( name ) right at the beginning of your program (first in the main() function or even before). Then place PROFILE_FUNC() in the beginning of every function you have or that you like to profile and in the end of your programm call PROFILE_END() then PROFILE_UPDATE() and finally PROFILE_GET_TREE_STRING() or just PROFILE_OUTPUT() [these are the macros for the latest SVN version of Shiny - if you are using the downloadable zip Version which is labled "Shiny-NoExamples", then you will have to use the names given in the included Reference.html file]
// your includes
#include <Shiny.h>
int main() {
PROFILE_BEGIN(myProgram) /* begin of profiling region */
// your code with lots of function calls that call PROFILE_FUNC()
PROFILE_END() /* end of profiling region */
PROFILER_UPDATE() /* update measurements */
std::string profileString = PROFILE_GET_TREE_STRING() /* get output as tree style to view call hierarchy */
PROFILER_OUTPUT("profile.txt") /* output the results to file profile.txt */