Hey, I was just wandering why in the real time graph my program showed to have 20MB of live bytes, but the native memory tells me I have actually 400MB. If I open the task manager, it shows also 400MB. So what's the relation between the two?

Unless the unmanaged resources tracker is enabled, the real-time view only includes memory used managed instances. The native memory view and the Task manager includes all memory used by the application, both managed and native memory. If you enable the unmanaged resources tracker, you will also get information about tracked native memory like Virtual alloced memory and Win32 Heap memor (but the total memory usage will be presented as separate managed and native memory numbers).