I have an andengine game, which has:
45-50-55 fps on a normal Galaxy S3, the phone temperature is warm.
stable 60 fps on CM11 Galaxy S3 with root in performance mode (maximum cpu frequence = 1400mhz) . With root you can modify the cpu frequence. The phone temperature is almost hot.
40-45fps on my Nexus 6 (without root), but this phone is faster than galaxy s3! The phone temperature is almost cold.
The resolutions of the game are the same!
The main question is: why does my game fps same on the both device? On Nexus6 it should be faster!
The game is: https://play.google.com/store/apps/details?id=com.hattedskull.gangsters
when a cpu is faster but does show less performance then the other cpus, it could be that it uses only 1 of 2,4,8,12 cores. thats just 25% usages, s the cpu stays cold. a single core cpu will always burn at 100%, and gets warm. Multithreading is the solution. that will "force" the cpu to go at 100%, and the game will run faster
I am answering my question, because it is not obvious (for me), so the solution is:
Performance mode: After rooting the phone, I changed the scaling governor (at processor) mode in performance, changing min hz was not necessary. Now the phone are hot, not warm!
Mobil ads bad performance: I switched off all the internet connections (wifi, mobile), therefore the mobile ad disappeared from the game. I use admob in my game, which has not the best performance.
These caused the FPS drops in my game(s)!
Related
Looking at the github and power_profile of devices based on the same SoC.
I noticed that Motorola devices have a different order in cluster.
As with others in Cluster0 there are slower cores (voltage and frequency) and in Cluster1 faster. But Motorola has it the other way around, i.e. faster in Cluster0 and slower in Cluster1.
Does this mean that faster cores are considered (or rather only marked) as slower ones? And does this have any effect on energy consumption?
I have a non-PlayStore app for Tablet devices where I have embedded YouTube videos in a FullScreenActivity. Code is pretty standard as per the documentation. However, I find the video playback quite laggy and it keeps buffering. To figure out what's happening, I started measuring things.
Device is Rockchip RK3368, 1GB Ram, 15.6 inch IPS display, 1920x1080, Android 6.0
1) Bandwidth - Have a 50 Mbps connection, face no problem with YouTube in any other device.
2) Memory - The device does have 1 GB memory, it may be less but I have no app other than stock ones installed and when I check for free memory it is generally more than 250 MB.
3) Processing power - It's an 8 core RK3368 CPU, however, after turning 'Show CPU usage' on, I see the device (the number for average cpu usage for time interval 1 minute) goes from about 5 to 20 or higher. This is when everything starts hanging in the tablet. Pressing back button or home button takes many many seconds to even register (that is show the ripple animation).
On closing the activity, the tablet is back to normal in about half a minute.
Turning hardwareAccelerated to true has helped a little but it is still unusable.
Please let me know how to improve the performance.
Please bear with me. I will provide any code/info/run tests if you need. Thanks in advance.
I'd like to run the CPU, GPU and GSM radio on heavy load simultaneouslly, essentially to generate as much heat as possible.
Is there an app or a diagnostic mode that I can use to make this happen. I have the LG G6.
Battery Waster - Google Play
"It leverages (multi-core) CPU, GPU, camera flash LED, screen brightness, sensors (MEMS and more) and GPS to maximise current consumption." You'll definitely generate heat! You could also be charging at the same time.
Here is some context. I am working on a 3d game on Android, and have been getting fluctuating FPS which is annoying.
Then I profiled the game and figured out that the processors were not always running at max clock speed. In fact, this was due to the fact that the active (as well as default) governor appeared to be 'interactive', which would try to act smart in that it would adjust clock speed according to current load.
I then rooted my device and set the governor to be 'performance', which locks clock speed at max. As the result the game was running super smooth giving a stable fps of 30.
The issue is that you don't have control, as an application, over what governor to use. That is, you cannot do anything if a player has an un-rooted phone, as it is an OS-level thing anyway. Even if they had their phones rooted, it would be still their, not our, judgement to make in which governor profile to activate.
So my question is, what can we do as developers, on application level, to 'trick' processors so that they are believed to have much work to do, which in fact they do not? The goal is to trick whatever governor to set clock speed at max, or at least at some fixed numbers, so that FPS would not fluctuate and make the game run at a performance that is lacking and below user expectations.
Thanks!
I have three android devices Single core, Dual core and Quad core. I was able to make an app using v4l2 to grab the picture.
In standby mode all three devices are giving me 30FPS (as announced by camera hardware provider). But as soon as I start some processing on image and draw on canvas the FPS of Dual core and Quad core devices drops drastically. Single core device FPS reaches 28 which is acceptable but Dual core becomes 18 (on average) and Quad core 12.
I have used CPU performance governor in all three devices. Without performance mode FPS are even lower.
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Initially I thought it has something to do with customized linux kernel in android So,
I flashed PicUntu on quad core device but still I saw similar behavior in FPS drop. On Desktop with Windows and Ubuntu there is no such issue in the camera. I guess it has something to do with ARM.
Have anyone faced similar problem for UVC camera with V4L2 driver on android(ARM devices)? Is there any way to increase the FPS?
EDIT ** Adding some more information
For KitKat device if I bind my usb task to single core (taskset), FPS is improving by small factor. In kitkat overall performance is also better than Jelly bean.
I am not sure why usb speed suffers when the application goes to background even when overall cpu usage is small.