I have a relatively large and complex application, and it uses about 700mb of memory on a 1080p monitor. This runs fine on most machines. On a 2160p (4k) monitor the ram usage quadruples, processor usage increases significantly and the gpu pretty much maxes out on anything short of a gaming rig.
I could spend a lot of time refactoring for small performance gains here and there, and I may have to do that regardless. However it seems useful to at least consider the possibility of rendering in 1080p on a 2160p monitor. There is no sensible reason for the application to require so many pixels.
Does anyone know how to do this? I know that it might involve the resolution independence functionality, or perhaps the zoom feature. I am not familiar enough with how the render pipeline works at this low level to really evaluate or even formulate a workaround for this.
For further detail, it is worth noting that there are a few currently open bugs regarding similar problems and there may actually be a fundamental flaw in one or more libraries that needs to be addressed.
e.g.
https://github.com/dotnet/wpf/issues/3626
https://github.com/dotnet/wpf/issues/4265
https://github.com/dotnet/wpf/issues/3135
Update:
Update 2: Removed profiling data, I diagnosed the issue in this case and it had nothing to do with the one I was asking about in this question.