Memory Clean Up in Windows Phone Mango - windows-phone-7

How i can implement memory clean up in WP7? Does GC.Collect() do the trick? or need clean up manually?

You don't need to manually clean up memory on Windows Phone. You shouldn't call GC.Collect() unless it's absolutely necessary.
I would recommend you read this article: Windows Phone 7 App Development: When does the GC run

As Claus mentioned, the GC handles memory cleanup for you. If you are asking because you are running into memory usage issues, you can use the profile your memory usage using the Windows Phone Profiler (as long as you are targetting 7.1).

Related

High CPU usage with Android emulator (qemu-system-i386.exe)

The emulator qemu-system-i386.exe cpu usage almost constantly running between 7~9
Android studio 2.1
Android SDK Tools: 25.1.3
Host Operating System: Windows 7 - i7 2630QM - 8GB Ram
Intel x86 Atom System Image installed
No matter what setting i change in the emulator like: emulated performance, multi-core CPU, x86-64 image, always the same thing
It is really annoying fan always on
Anyone had a fix for this issue?
The cause of the constant CPU usage could be the sound. If you do not need sound in your emulator you can disable it by editing the AVD's config file.
Change/add those two lines
hw.audioInput=no
hw.audioOutput=no
Update: As buncis commented you can also try to disable GPS if not needed:
hw.GPS = no
On Linux/Mac the file is located at ~/.android/avd/<AVD_Name>.avd/config.ini
On Windows the file is located at C:\Users\<username>\.android\avd\<AVD_Name>.avd\config.ini
On Mac I noticed that the emulator was using over 100% CPU after my laptop went to sleep. Turning the audio off as Benjamin suggested didn't fix that problem.
Restarting the simulated device by long-pressing the power button on the emulator works for me.
Using the x86_64 (Or the 64 bit) emulator solved it for me. They recommend the x86 version, but it was acting up for me.
To find out what on the virtual device is using the most CPU:
adb shell
$ top
This will show you a list of processes with the highest CPU usage atop.
This will help you determine whether it's a process (such as your app) inside the emulator, another process inside the emulator, or just the emulation itself using a lot of CPU.
In the latter case, try optimizing the emulator by installing HAX (Native intel instructions) or perhaps enable hardware acceleration using the AVD profile editor.
I had that problem on the start of November 2018.
Virtual device was contently trying to connect to the mobile network data, so I turned it off inside of the device itself.
Work great now.
The same problem with qemu on Win7, HAXM 7.2.0. I've tried switch off audio, it didn't help, qemu consumes about 20% of CPU anytime, Android works very slow on both x86 and x64 images.
I've found solutions in HAXM's Release Notes file:
On Windows, Avast Antivirus may interfere with HAXM and cause Android Emulator or QEMU to run very slowly. A workaround is to uncheck "Use nested virtualization where available" in Avast Settings > Troubleshooting.
I have Avast Pro Antivirus 18.5. I've unchecked this param, rebooted PC and now qemu consumes 0% in idle, Android works fine.
UPDATE: if QEMU started consume CPU again, first check Avast's update status. After background update Avast may start to interfere to HAXM again. Just reboot Windows to solve it.
In my case using hardware graphic solved my problem.
my case, coz I choose software for graphics rendering in adv. so after a change to the hardware reduce CPU usage from 60 to 10, and CPU temp from 70 to 40.
I am on macOS Catalina(Version 10.15.2) with Intel Core i9 and 16 GB RAM and Radeon Pro 560X 4GB Graphics.
I solved high CPU usage by qemu by restarting the emulated device using the emulated power button.
Also, while creating the AVD, I chose Hardware Graphics Renderer instead of Auto.
Using kind of old Android version I used Lollipop Galaxy Nexus API 22 dropped CPU usage from 220% to around 30% ! ...
I also switched: Emulated Performance > Graphics > Hardware
Using Android Api 25 ... Hardware for graphics and turning off AVD audio and GPS didn't work for me...
Platform: MacOS
I reduced the CPU usage of my emulator by setting the framerate of the monitor to 60hz. It was on 144hz and my CPU was running at 60% - 70%. By only changing the framerate of the monitor, it's now sitting at 3% usage.
I wasn't able to shut the audio off with the config.ini file, but only with the -noaudio cmd line argument to qemu. However, with Android Studio 3.2, you can't add custom arguments to the emulator, so I made this:
In the emulator dir of the Android SDK, in my case ~/Android/Sdk/emulator/
mv emulator emulator.orig
Make a bash script called emulator with the content:
#!/bin/bash
DIR=`dirname "$0"`
$DIR/emulator.orig -noaudio $*
Then:
chmod +x emulator
Now, the argument -noaudio will be added to all invocations of emulator from Android Studio and will save you a lot of CPU cycles.
I solved it by cancelling "Auto-save current state to Quickboot"
Snapshots -> Settings -> Auto-save current state to Quickboot - NO
I had the same issue recently on Windows 10 (18363): the AVD used all of the host's 16 Threads at 100%, it seems the android.hardware.graphics.composer#2.1-service process on the AVD was to blame.
What helped in my case: going to AVD settings - Advanced - change the OpenGL ES renderer to Desktop native OpenGL and restart the AVD. Now it uses like 2-3% of my CPU resources. Hope this helps someone.
Update:
I have installed Genymotion plugin at genymotion.com/plugins, and it has an amazing performance
In my case, I only encountered this issue when running multiple instances of the emulator.
Re-run the Intel Hardware Accelerated Execution Manager (HAXM) installer provided in the Android SDK (<Android SDK path>\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe), select Change, and see how much memory is allocated to HAXM. If it's 2 GB or less, you probably want to raise it to at least 4 GB. Then restart your emulator and see if the CPU usage drops.
Disable location in settings and also disable touch sounds.
In my case it was the fast boot that was causing the problem, to force into normal boot open the text file in C:\Users\<username>\.android\avd\<AVD name>\config.ini and change at least one of the values.
for example change the line
hw.battery=yes
to
hw.battery=no
In my case it was Airplane mode, when turned ON the CPU usage jumped to 99%:
adb shell
$ top
The issue was noticed on Android 10.0 x86.
If you turn Airplane Mode OFF then the CPU usage should return to normal.
Changing the resolution worked form me. I was using 1440 x 2560 560 dpi Oreo 8.1. Now im using M-DPI Oreo 8.1
For me I turned WIFI off and I dropped from 112% usage to 10%. I would recommend doing this
Just do
$adb shell
$top
Look the PID which high CPU
$kill -9 <PID>
on api31&32: do EDIT each AVD config with Show Advanced Settings and be sure to:
Multi-Core CPU > max (<=> hw.cpu.ncore=8,
4/cores is not enough and may overheat cpu strongly)
Graphics > Hardware (GLES 2.0)
No-SDCard (<=> hw.sdCard=no)

My cpu doesn't support virtualization technology. Is there a way to test wp apps without it?

I've got an Intel Pentium CPU B960. Doing some researches I've found out that my cpu can't support virtualization technology, so I can't enable Hyper-V. You certainly know that the abilitation of hyper-v is necessary to run emulators on PCs, (like virtual box for operating systems).. In particular I need to test my wp apps, using visual studio, and my question is.. Is there a way to test wp apps with a cpu like mine?
Sorry for my English, I hope you'll understand. Thanks.
You should be able to debug your app on a windows phone. The only emulators available require hyper-v

Task manager on windows 6.0 ce for Motorola MC3190 Handheld Computer

I try to find out why a web page causes a memory leak on Motorola MC3190.
Barcode scanners are new with Windows 6.0 CE. There are no programs installed only default. We use it only IE.
When we used it for two weeks on, scanner memory ran out and it crashed. After the full restart, it works normally, restarting only Internet Explorer doesn't help.
Only Internet Explorer is being used.
I try to find some program like task manager to find out if IE has a memory leak.
I ask because Windows CE 6.0 doesn't have a task manager.
Any ideas on how to check the memory usage?
I question whether you did much investigation on your own. A simple search engine query for me turned up a lot of promising results like these:
Task Manager on CodeProject
iTaskManager
Remote Task Monitor
Windows CE Task Manager
In addition, if all you want to do is monitor a process' memory usage, rolling your own monitoring app using the toolhelp APIs would be pretty straightforward.
I tried the remote task monitor for wince. It does the job well. https://www.osletek.com/pg/2186/Remote_Task_Monitor_for_Embedded_Devices

Process or Task Manager for Windows Phone 7 Mango

Are there some APIs or some way to find list of running processes, their memory usage and CPU consumption. I basically need a tool similar to "TOP" in Linux for WP7.
No. There was a Task Manager in a pre-release version of the WP7 emulator, but that was removed early on.

Memory Usage of Windows CE Devices

Is there any tools to measure memory usage of devices running Windows CE that don't require Platform Builder?
There is a commercial tool called Soti Pocket Controller that allows you to inspect memory usage, cpu usage, windows registry etc from your desktop workstation by using either a network connection or Active Sync.
Entrek is quite a good tool. Have a look at it.
http://www.entrek.com/

Resources