In DBC, when a program runs, DirectX will take ALL of the CPU's processing power which is perfectly normal because DirectX wasn't designed to be a multi-tasking environment.
On my system it always hovers around 99%, but this isn't memory - it's CPU utilization.
The cause of your problem could be one of many, many things - both hardware (faulty RAM) and software (bad code).
Are you using arrays? If so, you may inadvertantly be creating an unrealistically large array which uses up all your available memory - but only shows up when the screen refreshes (at the Sync).
Turn Sync On to Sync Off and see what happens when you run it.
TDK_Man