You need to look at what's happening in your program - where are things being created?
Some things to check would be 3D entities, images or sounds being loaded/duplicated.
A very common error is creating types and not deleting them when you're done with them. This is probably what I would look at first, given that memory is allocated in blocks of 4096 bytes and you noted that this is how much the memory usage is creeping up by, so I wouldn't think it'd be something like an image or a WAV as that'd result in a much steeper increase.
Some things to check would be 3D entities, images or sounds being loaded/duplicated.
A very common error is creating types and not deleting them when you're done with them. This is probably what I would look at first, given that memory is allocated in blocks of 4096 bytes and you noted that this is how much the memory usage is creeping up by, so I wouldn't think it'd be something like an image or a WAV as that'd result in a much steeper increase.