Hi all,
I have created an application like interactive information application for public (full screen) in WPF Application using VB.Net. I'm using Page.xaml as my interface and display data/information from local MySQL.
I have a problem where the kiosk is running at high memory and increasing when public using without non-stop and slow on decreasing. I'm using a task manager to see the usage(Yes I know I should not look and benchmark from it but when the RAM is at maximum from task manager,the application will be hang. Just hang like that until I terminate it).
I have implement IDisposable, Finalize, SetProcessWorkingSetSize, dispose memorystream, dispose rdr(query), DecodePixelWidth and set BitmapScalingMode.LowQuality but still program will be hang after continuously use.
Any other way to overcome this? Will these approach can do better?
1) Using Window.xaml
2) Using Frame and call every page inside it
3) Use VirtualStackPanel
4) UserControl?
I also try running this application on VS2015 where it got DiagnosticTools to see the Process Memory. GC somehow hit and it achieve until 2GB for 2 minutes play and not decrease to even 1GB after let it idle for 5 minutes.
My development:-
- WPF Page
- .Net4ClientProfile
- VS2010
- Windows 8.1
- Intel i7
- 16GB RAM
- 2GB DDR5
- Any other else,kindly ask.
Kiosk:-
- Intel i5
- 4GB RAM
- Integrated HD Graphic
What I want to know actually is:-
1. What made my program not decrease memory
2. Is using Arraylist can cause this
3. Is animation and crowded design cause this(client's proposal)
4. Does query to MySQL can cause a problem
5. Does windows background process(services or invalid windows licensing)
6. Windows 8 not stable?
7. Using other than page?
8. Writing in VB.Net affect too?
What I have tried:
Implement IDisposable, Finalize, SetProcessWorkingSetSize, dispose memorystream, dispose rdr(query), DecodePixelWidth and set BitmapScalingMode.LowQuality