С загрузкой проца всё просто: если твой код выполняется (а если ты запрашиваешь инфу и показываешь её, то он, определённо, выполняется), то загрузка одно ядра процессора - 100%. И, наоборот, если твой код не выполняется, то его загрузка (тобой) = 0%.
Значения между 0 и 100 получатся только если определить соотношение времени, потраченного на тебя, к общему времени. Сделать это можно через
Как увидеть ссылки? | How to see hidden links?. Сделали замер, подождали, скажем, секунду. Сделали второй замер. Вычли из второго первое и поделили на интервал (секунду). Помножили на 100. Получили "загрузку ядра в процентах".
Добавлено через 6 минут
С памятью всё сложнее. "сколько всего памяти и сколько выделено" - понятие расплывчатое.
Это сколько оперативки жрёт программа? Но это не учитывает выгруженную на диск (в SWAP) память, а ведь её мог выделить твой код. Зато учитывает кэш и прочий "не твой" код.
Это сколько памяти выделено в адресном пространстве? Но это не учтёт память, выделенную вне пространства (AWE и проецируемая память) и дважды посчитает разделяемую память. А также учтёт все системные DLL и прочий "не твой" код.
Это сколько памяти выдели через менеджер памяти Delphi? Но это включает код RTL/VCL и не учитывает выделения системного кода, а также сторонних DLL (если только не используется разделяемый менеджер или пакеты).
Короче, сам чёрт ногу сломит.