There's little difference between DBPro and Dark GDK, so if you have DBPro, or even have the free version then just proto-type some parts of your code. DBP does have the PerfTimer() which will give you an accurate'ish timing between point A and point B in a program. Although the best way to time efficiency short term is to run a piece of code many times.
I do know that when setting up a new font in DBP and GDK it takes a while to initiate the new font ready for drawing. Not noticeable in a single glimpse but swapping and changing many times during fast screen updates drastically slows things downas it frees up the memory used by the old font and then sets up a new one. It will set up memory for each character in the font even if you're only using one letter from it.
Usually I would use 3 functions (or 3 base methods if it's a class), init() which sets up the images, data, etc. while ( run() ) which keeps calling the main function until it's finished doing it stuff or the user has clicked something. And close() which free up any used resources. The same could be done for the pause menu. Init() would setup the data (whether coded created or pre-created files). Neither would actually use the most memory really unless you're using dbFonts to draw large text.
Pre-created images on disk may be faster but would take up file space where-as code created may take a little longer depending on the size of the fonts being used...
Mental arithmetic? Me? (That's for computers) I can't subtract a fart from a plate of beans!
Warning! May contain Nuts!