Related
Just rebuilt CM from the source, with JIT enabled (and fixed the code to compile)
* With "plain" CyanogenMod 5.0.x ROM it appears to be at least partly functional (people reporting Linpack jump from 7 to 17 Mflops) but I expect instabilities so JIT is definitely still far from the "prime time"
* It appears that HTC Desire ROM and JIT do not mix well. You will get reboots as soon as you try to unlock via. slider. I am trying to figure out what is causing this
For people that want to experiment - I am providing the precompiled Dalvik libraries with JIT enabled. DO NOT TRY THIS IF YOU ARE INEXPERIENCED!!! I assume no liabilities for any problems. Please read the readme first!
Code:
JIT Support for Nexus One CyanogenMod 5.0.x / Kernel 2.6.33.1 (Eclair)
By Ivan Dimkovic (psyq321)
--------------------------
NOTE: JIT is totally unsupported and known to be NOT stable!!! There is no guarantee your system will boot at all!!! ALWAYS BACK UP YOUR SYSTEM WITH NANDROID FIRST!!! This package is provided for TESTING PURPOSES ONLY. Author assumes NO LIABILITY WHATSOEVER if you brick your phone!!!
1. What is this?
This package contains several Android system files that enable JIT ("Just in Time") feature in the Dalvik VM. JIT is very unstable and it is not built-in the AOSP or Cyanogen's ROMs. This package contains system files built with JIT feature ON and it could be useful for testing for people that do not wish to recompile the entire ROM
extra_tuning directory contains Dalvik JIT library compiled with WITH_JIT_TUNING option. This option presumably enables even more optimizations for the JIT, but it appears to be totally unstable (I get endless reboot cycle)
2. How to make JIT enabled?
Follow these steps:
- BACK UP YOUR SYSTEM WITH NANDROID (IMPORTANT!!!)
- Connect your phone to the PC
- Copy the Dalvik files to the system directories:
adb remount
adb push libdvm.so /system/lib/libdvm.so
adb push libnativehelper.so /system/lib/libnativehelper.so
adb push dalvikvm /system/bin/dalvikvm
- Go to the shell (e.g. via adb shell, or via ssh) and change the permissions:
chmod 755 /system/bin/dalvikvm
chmod 644 /system/lib/libdvm.so
chmod 644 /system/lib/libnativehelper.so
- Add this line at the end of your system's build.prop
dalvik.vm.execution-mode=int:jit
- Reboot into RECOVERY and wipe Dalvik cache!
- Reboot
3. It does not work? My system keeps rebooting / My system crashes randomly?
Unfortunately, this can happen and this is known issue with JIT. This is the reason why it is not enabled. You are free to look in the AOSP code and try to fix it by yourself, but I suggest to wait until original developers make it stable
Enjoy!
Try JIT with a none sense rom like Cyanogen.
Gimpeh said:
Try JIT with a none sense rom like Cyanogen.
Click to expand...
Click to collapse
Bah! What nonsense..... sorry.
[email protected] said:
Bah! What nonsense..... sorry.
Click to expand...
Click to collapse
Don't be so senseless!
it seems people were running it on the g1 for at least a little while what do you think is the difference
I am not really sure, maybe HTC Sense components are much more intensive and force the JIT bugs to appear earlier.
Just tried everything (replaced libdvb.so, libnativehelper.so and dalvikvm - and cleaned up the dalvik cache) - and it is a no-go
If JIT is ON, SIM card is not accessed at all, I just get the lock screen, which triggers the system reboot if I slide it.
This is all on the HTC Desire a19 ROM... I guess JIT is a bit more stable on a stock ROM.
Gimpeh said:
Don't be so senseless!
Click to expand...
Click to collapse
that makes no sense whatsoever.
I thought the last time JIT was in CyanogenMod was in cm-5.0 beta 3. I'm pretty sure it wont work on any ROM except that. I would use it but the multi-touch included in it is still the hacked together version.
I miss JIT ;/
JIT is just not compiled-in by default in CyanogenMod but it is definitely in the code.
You can still enable it manually, but you need to rebuild the ROM from the source.
If you wish to try it - put this line in the buildspec.mk:
Code:
WITH_JIT:=true
Then rebuild everything - and the Dalvik VM will have JIT features inside. Then you need to enable JIT in the build.prop (or by adb manually on runtime)
Doh...
Just fetched the latest source from Cyanogen's github...
Looks like CM+JIT compilation is broken now There are some asserts in the code (Jit.c, line 48 for example) that are referencing missing structure members (looks like they reorganized structure layouts and moved JIT-specific stuff to another one) so the JIT-enabled code won't compile.
Ivan Dimkovic said:
Doh...
Just fetched the latest source from Cyanogen's github...
Looks like CM+JIT compilation is broken now There are some asserts in the code (Jit.c, line 48 for example) that are referencing missing structure members (looks like they reorganized structure layouts and moved JIT-specific stuff to another one) so the JIT-enabled code won't compile.
Click to expand...
Click to collapse
I saw a bunch of JIT related activity on GITHUB today from Cyan. Perhaps hes testing it again for a new experimental build.
This is one official upgrade I'm really looking forward to. Sadly, I bet it wont be released for another year.
yeah. A stable JIT would be a gamechanger.
I thought i was the only one that was interested in on JIT. Either that or Dalvik-Turbo
Looks like JIT breakage is coming from the AOSP itself.
What is going on is, in Jit.c (/dalvik/vm/interp/Jit.c) there are places that expect JIT stuff to be in the DvmGlobals structure - however, those elements are in the DvmJitGlobals structure.
For example, line 48 of Jit.c
Code:
assert([b][u]gDvm.jitTableSize[/u][/b] &&
!([b][u]gDvm.jitTableSize[/b][/u] & (gDvmJit.jitTableSize - 1))); // Power of 2?
gDvm (which is of DvmGlobals type) has no jitTableSize entry - it is part of gDvmJit
I'll try manually fixing these errors (there are few, and mostly confined to asserts fortunately) tonight but this smells like more things are broken.
I had JIT running on my Magic. It was 99% stable... I am actually hoping that Cyanogen fixes all of the bugs in the Java V8 script engine first. It made a big difference in the Browser.
Ivan Dimkovic said:
Doh...
Just fetched the latest source from Cyanogen's github...
Looks like CM+JIT compilation is broken now There are some asserts in the code (Jit.c, line 48 for example) that are referencing missing structure members (looks like they reorganized structure layouts and moved JIT-specific stuff to another one) so the JIT-enabled code won't compile.
Click to expand...
Click to collapse
IIRC, Cy removed Jit due to stability issues. I think there was a stability concern by just having the code in there, even if it wasn't enabled. You might want to dig through his thread a bit.
Hmm
JIT is definitely still in CM's repository... and just by quickly looking at it, it looks exactly the same as in the current AOSP
But it is broken in both. I don't know when exactly it got broken - as the last CM snapshot I had on my Linux VM was from few weeks ago, and the JIT definitely compiled.
Perhaps the breakage is result of some AOSP checkin by Google.
Ok, I fixed compilation errors.. rebuilding everything now.
Will test and upload JIT libraries here.
Ivan Dimkovic said:
Ok, I fixed compilation errors.. rebuilding everything now.
Will test and upload JIT libraries here.
Click to expand...
Click to collapse
Thanks that would be pretty cool.
[FAQ] >> RBAP for miniCM10 by nAa, nAa's kernel X10mini/X8/x10miniPRO .:08/07/2013:.
Read Before Asking Please
FAQ for MiniCM10, and nAa kernel
reading may answer to lots of your questions !
for X10mini, X8 & x10miniPRO
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
i decided to create a new thread dedicated to Q&A about miniCM10
this thread is the place of your questions, answers, tips about miniCM10 and nAa ics kernel
so please, as usual, read FAQ, use search option or anything else before asking commonly answered questions
the FAQ will be incremented when needed
the Q&A is written as Q are asked
Requirements:
Latest 2.1.1.A.0.6/2.1.1.C.0.0 SE firmware / Baseband: M76XX-TSNCJOLYM-53404015
Unlocked bootloader
Latest version of the JBnAa kernel
Instructions:
paste miniCM10-4.X.X on the root of your SDcard
backup
flash JB kernel
get in recevery and format /system ; /data ; /cache
flash rom
flash gapps
wait for the very long first boot
enjoy
Please make sure you followed the above steps before reporting any issues, especially 'wipe data/factory reset'
something else that is useful to read before asking :
Here we (nearly all? XDA members, regardless of being devs or only users [like me], me at least ) don't care about your good/bad English the important is trying to be understood and to understand the content of the threads
only ask things you can't find, or you don't understand, please if you don't understand something in any process tell us exactly where is your problem : it will optimize the answer
sometime rephrasing things can make you understand better, feel free to help us for making the most understandable sentence for anybody
i'm always trying to use a proper English (not so easy for a non native English ^^)
but if there's something misunderstood because of my English your are welcome to correct me
BUT if you don't make the effort to read, I won't make the effort to answer (ok, you can't read everything... but read the minimum )
that's it
miniCM website is now available (http://minicm.dyndns.org/site/Chat/ for chatroom)
clic on the red text above
register, and then enjoy
________________________________
bug tracking template :
twins.7 said:
#BUG Report
DO
Reboot - Recovery
BUG
the screen stuck in rebooting dialog. It should just rebooting
ACTION
press home key (or any key maybe) to make it reboot
Click to expand...
Click to collapse
________________________________
we seek for you, TESTERS, go there for helping : [DEV] miniCM10 debug only thread (shakira, robyn and mimmi)
2nd part of FAQ
FAQ :
for miniCM7 refer to THIS THREAD PLEASE
for miniCM9 refer to THIS THREAD PLEASE
for quick search, use ctrl+f and enter keyword, you should find an answer to your question
ok, let's start with some fun :
how to understand FAQ :
0/ question(which build(s) is(are) concerned with q/
answer to the question
old, wrong or obsolete answer
additionnal comments if needed
__________________________________________________
nobodyAtall said:
about nAa JB kernel :
Preface:
Read through [that] post. Don't rush into flashing. Be sure you understand the process before you start
This is a custom kernel developed for Android Jellybean
Do NOT try this kernel on other Android versions - you are totally unsupported
This kernel introduces custom mtd partitioning with larger /system partition to hold the extra JB calories. If you are moving from another custom kernel to this one, you MUST first format /system /data and /cache via the embedded CWM recovery
Click to expand...
Click to collapse
1/ any problem with display overridding?( ? ; ? )
in settings > development settings :
_____________________
2/ wanna go back to a non jelly bean based rom?( all builds ; all devices )
go to CWM > mount&storage and format :
/system
/data
/cache
then flash the kernel you want, (press flash on flashtool, plug the phone to pc, force reboot by pressing home+power, press and hold back button)
==> you can now restore a backup of the old rom you were previously using or install another non JB based rom
_____________________
3/ hard/software keyboard isn't working properly??( ? ; mimmi )
x10man said:
Quick fix for the soft keyboard:
On the select input method screen turn the hardware keyboard to off like so:
The software keyboard will now appear but the hardware keyboard still works.
Basically this needs to auto-switch when the hw keyboard opens and closes.
X10man
Sent from my U20i using xda premium
Click to expand...
Click to collapse
DanielFran said:
Power off, then remove sim card. Reboot and select language, change keyboard layout in advanced definitions (mimmiparts). Then put again sim.
Sent from my U20i using Tapatalk 2
Click to expand...
Click to collapse
4/ why my wifi can't load? ( all builds ; all devices )
you may have that kind of logcat:
Code:
D/WifiService( 1694): setWifiEnabled: true pid=2095, uid=1000
E/WifiStateMachine( 1694): Failed to load driver!
E/WifiStateMachine( 1694): DriverFailedState
open terminal emulator :
Code:
lsmod
if it doesn't answer anything, maybe /system is out of space and kernel fails to copy wifi modules at boot (note that undervolt module wont work either)
try the following :
open any file explorer that is root capable,
go to /system/media/audio/ringtones
delete some ringtones (at least to recover about 3 or 4 MB free, the more is safer) [1.5 MB seems to be enough though ]
reboot
try lsmod and see, if the kernel succeeded to copy modules at boot it's ok and and lsmod outputs what you are waiting for, if not reflash kernel and/or try to install a reduced miniCM10 zip (by deleting ringtones as for the previous way, but in a zip editor)
hoping it will solve your problem
5/ you have various problems with wifi ? ( all builds ; all devices )
refer to miniCM7 and miniCM9 miniFAQs !!!
6/ what are I/O schedulers ? ( all builds ; all devices )
a kind of answer here
7/ i updated from miniCM10-4.0.0 to 4.0.1 and after updating the gapps to 20120923 i've lost the camera ? (miniCM10-4.0.1 ; all devices)
go to mount&storage
format /system (NO data lost )
install miniCM4.0.1 again
install gapps 20120923
reboot&wait
all should be back to normal : fast and feature full
8/ how can i set keyboard shortcuts on my hardware keyboard? (all builds ; mimmi)
just edit azerty.xml or qwerty.xml in system\usr\keyboard-config\layouts
9/ how can i fix my azerty/qwerty/qwertz... HardWare keyboard? (miniCM10-4.0.2+ ; mimmi)
first flash this : from here
and then the zip corresponding to your specific language : look here
/!\ choose "default input method" so that the KB works correctly, if you don't it will behaves strangely
/!\ do not modify keyboard_layouts and keyprints in any way if you want the above to work, edit: seems you can edit the xml finally
/!\ do not modify advanced>mimmiperts, make sure you have not touched it before processing the installs. it is recommended to start from a "fresh build" i.e. to wipe all user data, and so on.
defauld input and sym button should be back
/!\here is another way to fix it : follow allesand's instructions
10/ i wanna use a2sd, what is it and how to make it work? (all builds ; all devices)
refer to that short tuto & infos here by drfr
11/ my LED is not blinking properly is there any way to change that? (all builds ; all devices)
You must delete /system/lib/hw/lights.msm7x27.so with rootexplorer or any other file manager that allows you to explore and modify root files
handcent led settings does not work properly with lights.robyn.so
of course, you need to reboot your phone after that.
REDELETE AFTER EACH UPDATE if you have the same problem SINCE THE FILE IS REWRITTEN
12/ why flastool doesn't flash the kernel i choose? (any version)
when there are lots of kernel builds in flashtool firmware folder, flashed kernel might not be the right one,
to void this, create a folder in it, cut/paste all your previous kernel there
and only keep the one you want to flash in the firmware folder
then, start flastool and process flashing operations
13/ i'have some problem for sending mms (all builds until miniCM10-4.0.2+ ; all devices)
--> with CM7/9/10 you just CANT send mms without data enabled
if you can't even with data enabled:
DaRk_dOg said:
I think that this is a common issue with CM7 and not just MiniCM7 (I experienced it on my DHD too).
Here is a small workaround for now:
Before sending the mms, disable data traffic, then enable it again and then send your mms.
You have to do it every time, before an mms but it is working for me.
Regards, D_d
Click to expand...
Click to collapse
--> seems now, mms can be sent without enabling data or anything, just need to have correct APN set up
14/ CM file manager doesn't work well for no (not at all in fact) (all builds? ; all devices?)
see details here.
15/concerning brightness on MiniCM10-4.0.2 nightly 20130119 and higher, (MiniCM10-4.0.2-nightlies ; shakira, robyn, mimmi?
to get compatibility with .32 kernel, nAa needed to change some things related to brightness monitoring
and that's why some issues appeared with .29 kernel, and then were fixed, but with the drawback of light being at max for a short time before dimming when turning the screen on.
using .32 kernel solves this issue
with old .29 kernel, use MiniCM10-4.0.2-stable or nightlies until 20130114
for newer nightlies (especially 20130207+) prefer .32 kernel
16/ concerning Undervolting and newer .32 kernels : (MiniCM10-4.0.2+ and nAa .32-03+ ; all devices)
NobodyAtall said:
VDD levels
From 03 onwards, I've ported the vddlevels functionality from msm7x30
so that we can variably change the voltage level of the frequency we
want without the need for external modules.
The current voltage information is available at:
Code:
/sys/devices/system/cpu/cpu0/cpufreq/vdd_levels
E.g. the defaults after flashing the kernel should be:
Code:
[email protected]:/ # cat /sys/devices/system/cpu/cpu0/cpufreq/vdd_levels
122880: 3
245760: 4
320000: 5
480000: 6
604800: 7
614400: 7
633600: 7
652800: 7
672000: 7
691200: 7
710400: 7
729600: 7
748800: 7
768000: 7
787200: 7
806400: 7
825600: 7
844800: 7
864000: 7
To change for example the voltage level of the 122880 frequency, you could do:
Code:
echo '122880 0' > /sys/devices/system/cpu/cpu0/cpufreq/vdd_levels
If you cat this file again, you should see that the voltage level is
picked up. The new voltage level is picked up when the CPU will scale
to the particular frequency level.
The undervolting tickbox in the 'Performance Settings' of the latest
MiniCM10 nightlies already uses the new interface. The values that are
set there are the same ones as those passed by the old undervolting
module:
Code:
[email protected]:/ # cat /sys/devices/system/cpu/cpu0/cpufreq/vdd_levels
122880: 0
245760: 2
320000: 3
480000: 5
604800: 6
614400: 7
633600: 7
652800: 7
672000: 7
691200: 7
710400: 7
729600: 7
748800: 7
768000: 7
787200: 7
806400: 7
825600: 7
844800: 7
864000: 7
Do I need undervolting?
You dont NEED undervolting. It can save though hours of some battery
life during the day.
Overvolting?
Even though the interface allows you to overvolt, I don't suggest
doing so. It will result to instabilities or crashes and is totally
unsupported.
Performance?
Undervolting decreases the performance results - this is to be expected.
Click to expand...
Click to collapse
17/ why can't i connect my device to USB on PC ? (MiniCM10-4.1.0+ & nAa05+ ; all devices)
SmG67 said:
That's because MTP (Media Transfer Protocol) is default now, so it gets connected as a media device. If you want Mass Storage, go into Settings-Storage on your ROM and press the menu-button, you can select USB-storage from there.
Click to expand...
Click to collapse
18/ where is my dualtouch?? (MiniCM10-4.1.0+ &nAa05+ ; all devices)
this is a copy of kernel OP, that you should have read before
nobodyAtall said:
Dualtouch (for synaptics):
By default dual touch is disabled for improved touch accuracy and avoidance of the 'ghost touch' side-effect.
If you want to enable the fake DT by andrej456, you have to insert the following line in the /system/etc/hw_config.sh file:
Code:
echo "1" > /sys/module/synaptics_i2c_rmi4/parameters/cfg_dt
If you want to enable the fake DT by dx, you have to insert the following line in the /system/etc/hw_config.sh file:
Code:
insmod /system/lib/modules/synaptics_i2c_rmi4_dt.ko
Dualtouch (for cypress):
Cypress supports dualtouch, so this is enabled by default
Click to expand...
Click to collapse
19/ why do i get a kernel version error (installation abort, status 7) while installing MiniCM10? (MiniCM10-4.1.0 up to 20130518-NIGHTLY &nAa06 ; all devices)
matmutant said:
change in rom zip to *.61 for kernel version if you want the installation to complete (in META-INF/com/google/android/updater-script)
Click to expand...
Click to collapse
3rd part
3rd part
usefull links and performance tricks
useful links :
[DEV] miniCM10 debug only thread (shakira, robyn and mimmi)
what CPU governors, and how do they work?
$find other useful link in miniCM7/9 miniFAQs $
Perfomance :
recomended settings :
perf related :
CPU: keep default, but enable UnderVolting (and set on boot if you don't OverClock) (settings>performance>CPU)
RAM : to optimize RAM usage, use KSM, zram (18%, default) and allow purging of assets (settings>performance>memory managment)
I/O : keep NOOP, this is the default and the best for flash memory
other :
in settings>developer options
enable USB debugging,
debug notification,
set all animations to 0.5 (electron beam CRT animation will happen no more)
enable "kill with back button"
________________
for whose who feel the system slow and laggy, just try the SWAP (SDcard class6+ recommended)
SWAP, there is two "kind" of swap : using a partition on the SDcard, or using a swap file
both are good, but some SDcard/phones react better with the one or the other
let us start with the partition way : it is more complicated than the file method, but as some advantages
pros: once it is set up, no need to care about it anymore, the SDcard can be mounted to PC easily without latency
cons: a little complicated to set up, and once it's done, it is as complicated to revert as to set up; to change swap size, you need to repeat the process (formating and partitioning SDcard)
needs a clean install of miniCM10:
flash JB kernel
in CWM, go to mount&storage :
then, format /system, /data and /cache (so that kernel can use the new partitions size) any data on phone memory will be lost
set up your swap:
==> go to /advanced/Partition SD Card
if you don't want to use a2sd, then choose the minimal size for ext, and the size you want for SWAP
it will FORMAT your SDcard ! any data on SDcard will be LOST
and install the rom
swap partition should work
what doesn't work is the swap info menu
to revert : format SDcard in phone settings : it will FORMAT your SDcard ! any data on SDcard will be LOST
____________________
now, the swap file way : it is really simpler than the swap partition, works great but has some drawbacks
pros: easy to set up, easy to revert, and the size can be choosen at wish at anytime (in settings>performance>memory>Swap settings)
cons: high latency when mounting SDcard to pc, it can take forever (really quicker to use CWM mount and storage capability to use the SD on the PC, than using android way)
you must perform a clean install of miniCM10 (by formating /system, /data and /cache) any data on phone memory will be lost
install the rom zip, the gapps, and boot up your phone
set it up
once your rom is ready to use,
go to settings>performance>memory>Swap settings
choose "enabled"
choose the size
allow system to get SU permissions
wait for the pop up "swap enabled"
enjoy, it is simple and can be disabled on wish
for both :
to see if your swap works, open terminal, and type the following :
Code:
free
to see the swapiness :
drfr said:
To check in terminal:
Code:
cat /proc/sys/vm/swappiness
Default value is 30 if you have zram and swap enabled, or 60 if only swap without zram.
To change it TILL NEXT REBOOT:
Code:
echo X > /proc/sys/vm/swappiness
where X is your desired value
To change it PERMANENTLY:
add the above line to the end of your hw_config.sh (you can find it in /sýstem/etc)
Note: it is always way easier to type those things on PC keyboard, so you´d better do it in adb shell.
Click to expand...
Click to collapse
__________________
some usefull lines of commands for any user wanting to know what's going on :
in terminal, just type the lines,
in ADB, add "adb" before the commands
if you want not to siplay the output in terminal, specify the path :
Code:
command > /where_you_want_your_output_to_be_stored/name_you_want_for_the_log
to know how much swap there is (total and free are what you want to know), use the following command since the way using menu is broken :
Code:
free
to know if KSM is really turned on :
Code:
cat /sys/kernel/mm/ksm/run
to know what modules are running :
Code:
lsmod
install an app from terminal :
Code:
pm install /sdcard/app1.apk
from adb :
Code:
adb pm install /home/user/app1.apk
your kernel crashed?
Code:
cat /proc/last_kmsg
ex : from adb, and stored in /home/user/last_kmsg1
Code:
adb cat /proc/last_kmsg > /home/user/last_kmsg1
an app crashed, you want to know why?
Code:
logcat
ex : from adb and stored in /home/user/myfirstlogever
Code:
adb logcat > /home/user/myfirstlogever
don't have an USB cable ?or adb "other the air" :
connect to your home wifi network (both device and pc)
in settings/dev options/ enable adb on TCP/IP
Code:
adb connect xxx.xxx.xxx.xxx:5555
(the IP is the one displayed in the option you choose previously
and then, since it is connected, catch the log :
Code:
adb logcat > /home/user/myfirstlogever
Benchmarks, screenshots and thklist
to start with, some screenshots
MiniCM10 theme:
MiniCM10 Crystal2:
benchmarks :
MiniCM10-4.0.2-nightly, using .32 kernel :
all has been done at 729MHz, on robyn
on .32-02:
antutu : fps2D:
I/O performance on miniCM10-4.0.2-20130120/nAaJB03 (2.6.29.6) :
conclude what you want
NOOP:- The NOOP scheduler inserts all incoming I/O requests into a simple, unordered FIFO queue and implements request merging.
The scheduler assumes I/O performance optimization will be handled at some other layer of the I/O hierarchy; e.g., at the block device; by an intelligent HBA such as a Serial Attached SCSI (SAS) RAID controller or by an externally attached controller such as a storage subsystem accessed through a switched Storage Area Network.
ANTICIPATORY:- Anticipatory scheduling is an algorithm for scheduling hard disk input/output.
It seeks to increase the efficiency of disk utilization by "anticipating" synchronous read operations.
CFQ:-CFQ, also known as "Completely Fair Queuing", is an I/O scheduler for the
Linux kernel which was written in 2003 by Jens Axboe.
CFQ works by placing synchronous requests submitted by processes into a number of per-process queues and then allocating timeslices for each of the queues to access the disk. The length of the time slice and the number of requests a queue is allowed to submit depends on the IO priority of the given process. Asynchronous requests for all processes are batched together in fewer queues, one per priority.
BFQ:- BFQ is a proportional share disk scheduling algorithm based on the slice-by-slice service scheme of CFQ. But BFQ assigns budgets, measured in number of sectors, to tasks instead of time slices. The disk is not granted to the active task for a given time slice, but until it has exahusted its assigned budget. This change from the time to the service domain allows BFQ to distribute the disk bandwidth among tasks as desired, without any distortion due to ZBR, workload fluctuations or other factors. BFQ uses an ad hoc internal scheduler, called B-WF2Q , to schedule tasks according to their budgets. Thanks to this accurate scheduler, BFQ can afford to assign high budgets to disk-bound non-seeky tasks (to boost the throughput), and yet guarantee low latencies to interactive and soft real-time applications.
I/O performances on MiniCM10-4.1.0 /w 2.6.32.60 nAa-JB-05 :
here is a chart showing scheduler specific results,
the benchmarks were based on Antutu, regarding IO and SDcard R/W
my settings are :
122~729MHz
smartassH3
undervolted
KSM
zram 18%
swap file 128MB
all i can say for now, is that SIO is the more balanced scheduler, and CFQ/VR are the worst
here are the results
what does the chart shows us?
SIO is the more balanced scheduler, it has a good IO, and a good read/write
Anticipatory has the best IO, but a bad SDwrite
Deadline has the best SDwrite, but is quite average for IO and SDread
NOOP, CFQ and VR are a bit behind
for people using swap, i would say that they should use SIO or deadline, for others, Anticipatory or BFQ might be better
i ran the benchmark 4 times for each scheduler.
source
Benchmarks history since stock rom here
MORE BENCHMARKS HERE
thanks to Heronger and some others helping to build this FAQ
are the reserved threads in x8 development for JB?
hetunandu said:
are the reserved threads in x8 development for JB?
Click to expand...
Click to collapse
where are the reserved threads you are talking about?
matmutant said:
where are the reserved threads you are talking about?
Click to expand...
Click to collapse
in x8 android development section
http://forum.xda-developers.com/forumdisplay.php?f=1704
hetunandu said:
in x8 android development section
http://forum.xda-developers.com/forumdisplay.php?f=1704
Click to expand...
Click to collapse
maybe
matmutant said:
maybe
Click to expand...
Click to collapse
arghhhh!! cant wait!!
BTW do u need testers? im in. I have an X8. PM me
Great job matmutant!:good:
I have questions/suggestion request about minicm 10 for xperia x8, i have a very little space to store applications, any suggestions? With GB I can use a lot of apps moving its in SD but with MiniCM 10 also moving apps I can install all the apps that I use before.
Use an ext partition for example it would be useful?
Another thing is the automatic conversion trom SMS to MMS when it exceeds a page in length. Only using another app for messages it wont be this way but i thing it would be great if we can use the stock app that I think is great!
A q aswell(actually I'm not sure of something)
nAa said it will repartition our space and said to uninstall we need to flash using seus or flashtool so that means to go back to stock partition we need to flash good ol eclair or any other kernel(eg. nAa gb) will get back our partition?
Sent from my heart™ using Xperia X8
X8invisible13 said:
A q aswell(actually I'm not sure of something)
nAa said it will repartition our space and said to uninstall we need to flash using seus or flashtool so that means to go back to stock partition we need to flash good ol eclair or any other kernel(eg. nAa gb) will get back our partition?
Sent from my heart™ using Xperia X8
Click to expand...
Click to collapse
I think he means that if we want move to another kernel we have to use seus or flashtool the way we always flash new kernel, for example flashing again naa-13 over jb kernel using flashtool without going back to eclair first.
I tried to make an ext partition in my sd card with CWM, now I have more memory to store my apps and system is so fast! This rom is great!
I only have sometimes random reboots and sometimes the screen crashes but now this is my daily rom!
Does swap partition works in MiniCM10 ?
I still don't quite understand about the meaning of clearing data, cache, etc...
Currently, I'm still at MiniCM 2.2, with a swap partition, EXT 4 partition, and FAT partition...
What is the correct sequence to run JB for the first time ?
Do I have to :
1. Reformat my MMC first + deleting the partition, go to recovery, format data, cache, etc, then make new partition (Swap, EXT4, and FAT)
OR
2. Format data, cache, etc, then reformat my MMC (as Swap partition gets changed to EXT3 automatically when doing factory reset), then make new partition.
Can somebody help ? Thank you in advance
StardustGeass said:
Does swap partition works in MiniCM10 ?
I still don't quite understand about the meaning of clearing data, cache, etc...
Currently, I'm still at MiniCM 2.2, with a swap partition, EXT 4 partition, and FAT partition...
What is the correct sequence to run JB for the first time ?
Do I have to :
1. Reformat my MMC first + deleting the partition, go to recovery, format data, cache, etc, then make new partition (Swap, EXT4, and FAT)
OR
2. Format data, cache, etc, then reformat my MMC (as Swap partition gets changed to EXT3 automatically when doing factory reset), then make new partition.
Can somebody help ? Thank you in advance
Click to expand...
Click to collapse
flash JB kernel
in CWM, go to mount&storage :
then, format /system, /data and /cache (so that kernel can use the new partitions size)
then set up your swap
and install the rom
swap partition should work
what doesn't work is the swap info menu
_______________________
benchmark of the day :
matmutant said:
flash JB kernel
in CWM, go to mount&storage :
then, format /system, /data and /cache (so that kernel can use the new partitions size)
then set up your swap
and install the rom
swap partition should work
what doesn't work is the swap info menu
_______________________
benchmark of the day :
Click to expand...
Click to collapse
Please show your settings.MATMUTANT
Sent from my U20i using xda premium
benchmark :
[/QUOTE]
SERIOUSLY. I haven't had a high score on my mimmi with my MiniCM7 with most of apps I need and apps for UI improvements(themes/widgets/etc). I also use v6 SuperCharger of zepplinerox. I only had a 1853 score. but this score is higher. does this have potential to overthrow the speed and performance of MiniCM7?
minicm10 doesn't have as much features as minicm7 or 9 but is much smoother and more powerful right now .
my settings are simple:
ksm on, disable hardware override on, swap file 128 , uv on, else: default
note that this screen shot was taken on a private nightly of the next release :
hi i have lg g pro lite wiith android 4.4.3, in developer options i don't have a runtime option.
So i have tried to change it manually, i modified /data/property/persist.sys.dalvik.vm.lib and to build.prop i add this:
Code:
persist.sys.dalvik.vm.lib=libart.so
dalvik.vm.dexopt-data-only=1
After that i reboot my device, it take more than usually but dalvik cache is still exists....so i have a trouble....after reboot the /data/property/persist.sys.dalvik.vm.lib file contains again libdvm.so...?!?
Anyone can help me?
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
I guess , it is about time to move my ass and do something useful in here
In this Guide i will try to provide you with the best optimization for the roms , based solely on my use and testing for the past days :angel: , so lets get started
As always , basic knowledge is required at least , you know how to do a Nand backup in TWRP , so make sure you know what you are doing
It is better if you do this on a clean install
Note : i'm merging the guide for the two roms , but i will provided side tips for each rom if needed
Note 2 : lollipop is still , in early stages in development and if you didn't already know , there has been a bug that hit the wave in his weak point "Ram"
second to that there is a great lag in dialer , so that making calls or receive them , will give you a headache , read further in links
Lollipop memory leak http://www.xda-developers.com/lollipop-memory-leak-fixed/
Dialer lag https://code.google.com/p/android/issues/detail?id=81593
https://code.google.com/p/android/issues/detail?id=82949
http://forum.xda-developers.com/galaxy-s3/general/lag-dialer-contacts-t1958171/page2
i will provide you with my work around on this bug
Note 3 : due to memory leaking sometimes the phone just reboot ,
Note 4: Omni 4.4 / Lollipop / GearCM /better , honestly for now i only recommend using Omni 4.4 (NAND) or GearCM (NAND) i tested/used it for long time with no major bugs . but looking forward to the next release of Lollipop
Reviews
Omni review by Hero355
GearCM review
Lollipop review
How to Install Android Lollipop on Samsung wave devices
Best Roms (Very stable and recommended for daily use)
[ROM][WIP][NAND] Omni 4.4 - 11.12.2014 by @volk204
Omni review by Hero355
[GearCM][NAND|S85xx][4.4.4] Optimized CyanogenMod 11 for Samsung Wave I/II by @Alberto96
Tip 1 : note that some of this tweaks will take place after you reboot your phone
Tip 2: Start this Guide by deactivating All "other sounds" in sound settings .
1- Apps you gonna need / recommended / and Gapps
As stated by @volk204
volk204 said:
GAPPS make our ROM slowler, because also slim GAPPS take about 15-20 MB RAM permanently
I use PICO MODULAR PACKAGE from http://forum.xda-developers.com/par...apps-official-to-date-pa-google-apps-t2943900
Click to expand...
Click to collapse
*Do NOT install Gapps unless you really need them , specially with Lollipop , (NB : note that i don't use Gapps , and this Guide is based on that)
*Use an apk downloader website and search for your application , download, put them on the sd card , and install . couldn't be any easier
*Root you rom http://forum.xda-developers.com/show....php?t=1538053
*Download those APKs
To remove android bloatware System app remover (ROOT) (if Lollipop) Andromizer (if omni)
To replace native browser : Opera Mini (for casual browsing on 3G ,fast ,save battery and data) and Atlas web browser (an great browser , with awesome features that will be more useful on the wave)
Apps/Ram/battery saver : Greenify
Tweaking the kernel : [ROOT] Kernel Tweaker
File manager : CM file manager 1.0.2 search for it , or download it from the attachment .
Video player : Mx player
2- Install the above apps and remove those
Use andromizer (omni 4..4) or System app remover (Lollipop) to remove the following apps , and reboot (and remove andromizer/System app remover , you don't need them anymore )
you don't need most of those apks , and you could remove more , those are the apps i don't need , and probably so do you , i recommend you remove them
Q: What those apps do ? is it safe to remove them ?
A: Safe , yes . read further in this guide What Android Apps(Bloatware) are Safe to Remove?
3-Battery Calibration / Voltage control / Kernel governors
*you probably already know this , there is no such apk that do battery calibration or saving battery , our amazing devs already put so much effort in tweaking the kernel to safe battery .
a Software will never repair a hardware
*but before all that (calibrate) it by : draining your battery until the phone shut down , try turning it on again to make sure battery is truly low
the trick is to fully charging it in Bada mode , by pluging the charge in while pressing the call button (phone off).
*Voltage control :
100 Hz and 200 Hz work on the same voltage , seeing that most of time in state are in 100 HZ and in this frequency ,CPU would take more time to accomplish tasks than in 200HZ , it is only logical to reduce the voltage on 100 HZ ,
you need a 3rd parties apps to modify the value as the original Dev asks to not implement the code the rom directly (use [ROOT] Kernel Tweaker) .
i played with value and here is the value the phone freeze at it (governors was set to performance , and max value is the freq tested).
phone freeze at this value 100HZ-750mv 200HZ-800mv 400HZ-875mv 800HZ-1075mv 1000HZ-1175mv
i used 100 mv (Omni) 125 mv (lollipop) above this setting , with no freezing or problems , you can push it further and test it more
Use kernel tweaker , under the UV table, enter the voltage value , make sure to give root permission and set it to apply value on boot , and reboot.
*Kernel Governors:
-For omni 4.4 , i really like what i have on interactive 100-1000 mhz , i didn't tweak it but you surely could , if you want ;
read this [REF][TWEAKS] Kernel Governors, Modules, I/O Schedulers, CPU Tweaks, AIO App Configs before you make any dummy change
NB : make sure to note this , as the wave now is considered a low end device , some governors will put a reverse effect on battery , for example setting the governors on Conservative will drain battery much more .
Since the processor will run on low frequency , it will take it much time to do tasks , and therefore it will consume much likely than it do on high frequency , roughly 5 seconds on 200mhz consume more than 3 seconds on 800mhz
Further more you we'll notice a slight lag , due to the fact that the conservative governor increases and decreases CPU speed more gradually. Simply put, this governor increases the frequency step by step on CPU load and jumps to lowest frequency on CPU idle.
so if you use heavy tasks apps on your mobile i don't recommend using "conservative" , it is much suited with daily life usage (calling , messaging , casual browsing ...)
ok : (tested for Omni 4.4)
you need Performance : Go with 100-1200 interactive
In the middle : Go with 100-1200 conservative
Battery safe : Go with 100-1000 conservative
-For Lollipop; well for starter interactive on 100-1200 mhz is a nice choice , i will dig it further and report
*Battery Testing : 100-1000 Mhz interactive
Playing movie from Sd card on full brightness drain battery by 12.17%/hour about 7 hours and half play time at full brightness
on Standby , don't expect so much , battery drain at 0.9 to 1.2 %/ hours on (3G mode , Auto sync deactivated ),so about 110 hours (4 days and half) :fingers-crossed:
4-Ram management software
Ram manager or such software is just a bull****, there is a saying i read it a while ago on xda that "A free Ram is a wasted Ram " so don't try to kill apps because they just take more battery and resources when they relaunch .
5-Using Greenify : (donated version recommended)
Greenify help you identify and put the misbehaving apps into hibernation when you are not using them, to stop them from lagging your device and leeching the battery , with that been said
Do not Greenify any app that you use a lot or an app that relaunch itself like "download manager" "Google play services " it will only cost you your battery life
For example you can greenify mail.apk if you disable auto-sync
For me ;
6- Gapps (what if i need google play service)
-well ; note that there 's always an alternative to any apk that require Google play service , Google oblige you to use them , so that they push you some Ads and keep track of your location :laugh: , maybe isn't quite true , but i like to believe so .
-any way here is what you need to do :
*Install Gapps link
*Log to your Google account let it update "Google Play service" and "Play store"
*Download 3C Toolbox Aka Android tuner
*Disable play store , it will ask you to remove updated , say yes (activated it when needed)
*Disable also : Google contact sync , Google calender sync (if you do not sync events from your google account) , Google backup transport ( backing up data to your google account , also disable if not needed)
it will get a little tricky here so :fingers-crossed: :angel: and Say thanks to xda assist @timmaaa for his guide , (i retouched it a little )
*Go to setting - Apps permissions - Google play services and put every thing to off
*Next step we gonna reduce the wake locks of Google play service to the point , like it was never installed :highfive:
timmaaa said:
*Open 3C toolbox , give it root access , pull out the side menu, scroll down to the Apps Manager section and select Application Startups. Open the box at the top and change it to All, click the button in the bottom-right until it says System, scroll to Google Play Services and select it, a huge list will open, scroll to very near the bottom and find the Wakeup option, uncheck the box.
*Go back to the main menu of Android Tuner and pull out the side menu on the left, scroll down to the Apps Manager section and select Application Manager. Click the centre box at the bottom until it says System, scroll to find Google Play Services and highlight it, press the Manage button in the bottom-right and select Permissions. This should bring you to the Perms tab, swipe across to the Services tab. In this list you want to uncheck anything that starts with Ads or Analytics ,Games , Wallet you also want to uncheck anything that starts with com.Google.android.location.reporting as well.
Click to expand...
Click to collapse
NB: make sure to not ; i repeat to not uncheck this com.Google.android.location.reporting.preference.service . it will cause play services to keep looping and never go to sleep
timmaaa said:
Click to expand...
Click to collapse
* if you want to push this further , disable the same services ( Ads or Analytics ,Games , Wallet , location report) from the other tabs (receivers , providers , activities ) be careful to not causing a loop that will keep wack locking your devices , do it at your own risk , it needs more testing :angel:
the result will be like this
screenshot in Google setting when opening "play games" , completely disabled :highfive:
NB : if you see , a pop up at boot saying , google play service crashed , just click ok , ( crash related to the service not needed , we did disable) , Google play service still work fine with apps and Google maps
Note : remove 3C toolbox (not needed) after you do every step correctly and the apps work as it should
7- Applications :
*Browser :
Set your default browser to Atlas browser , there 2 awesome thing about this browser :
1- it offer free Ad block , and Java script pop out windows blocker , and believe me it 'll deliver say thanks for Xda senior member @tliebeck
2- The "Experience" selector controls what types of rich content are displayed. The "HI-FI" mode provides the full experience, while the "LO-FI" mode disables JavaScript and rich media. Using LO-FI can have a tremendous impact on performance, but may come at the expense of web site functionality. A final "TEXT" option can be useful in critical low-signal situations.
*Mediaplayer :
from setting Set MX player to always use S/W decoder for online and local , it will give more space to the processor to work .
8-Managing media scans :
Media scan , for multimedia files , runs every times at startup and every time you lunch gallery or take picture , it will scan all folders in your storage and it will take sometimes more than 20 mins to finish , which will cost you some % on battery
so open CM file manager :
*one by one select every folder with no playable media like for exemple "android" folder
*press and hold , and select proprieties
*check "skip media scan"
*click ok
9- Loollipop Caller lag , and Omni 4.4 optimization :
probably there is a bug with the animation scaling , or it is a bug that over eat the ram
to fix temporary the lag in Lollipop caller lag ; do the following :
*Go to developer option
*scroll down , and turn off the following :
NB : note that effects will take place after you reboot your phone
NB 2: make sure to deactivate All "other sounds" in sound settings .
Appling this on Omni 4.4 will result in so much improvement , specially in opening big apps with boot animation
10- Moving apps and links2sd
[Guide] partition and link2sd [pictures included for each step] by @sanny5
Don't use this on Lollipop , there not even the available RAM to open the native apps
Moving apps to SD , uses at least 30 MB of RAM (Xposed + Modules + Link to SD )
It is not worth it , even on Omni 4.4 with a few apps installed
11- USB mass storage support
This only supported in GearCM ROM
12- Mobile Network
Bad Call Quality while on 2G (GPRS & EDGE) Networks (probably related to AMR_WB)
Dynamic Switching between 2G (GPRS & EDGE) & 3G (UMTS & HSDPA) doesn't work (it is recommended to use 3G Only mode)
13- How to solve encryption is unsuccessful Error :
The problem came from the Data partition being formatted in F2FS format , because you did it or the previous ROM you installed did it automatically
The problem rises when you try to install omni 4.4 , because the kernel has no support for F2FS , and Kernel read data as encrypted and can't do anything
to solve this boot to TWRP , and format everything to "ext4"
Flash rom again
If this Guide helped you in anyway , make sure to thank first xda developers @volk204 @Rebellos @Alberto96 , without their work and effort developing the ROM , this Guide won't be possible .
Thanks also for all the original Badadroid porting team .
enjoy !!
Reserved
also add
developer option-> background process limit ->at most 2 processes
m90ultimate said:
also add
developer option-> background process limit ->at most 2 processes
Click to expand...
Click to collapse
that maybe will cause a reverse effect if you think about it ,
setting it " at most 2 processes" , surely will give you slightly better performance
but in other hand , android keep killing background processes , but those processes never sleep , it keep relaunching
that will cause a loop
and launching app take more of battery than when leaving it running
en plus an unused ram is wasted ram
regards
m90ultimate said:
also add
developer option-> background process limit ->at most 2 processes
Click to expand...
Click to collapse
Side note : you can't set it to load at boot , anyway
nice guide
Hi ice_ice, i see you have done many things for tweaking those roms! Thank you for the guide! :good::good::good:
Majd7667 said:
Hi ice_ice, i see you have done many things for tweaking those roms! Thank you for the guide! :good::good::good:
Click to expand...
Click to collapse
you welcome
recommendation
thanks for explanation of following tweaks
but
for voltage values i have better one
1.850mv for 100 & 200 mhz
2.950mv for 400mhz
3.1100mv for 800mhz
4.1150mv for 1000mhz
these values are highly stable.
Hi, @ice_ice.
Please give proper credit for section 6 of your guide, that was almost entirely written by me. I know you mention to say thanks to me for the guide but that doesn't really make it clear that that section is (mostly) a copy of my work.
Thanks, and well done on your thread.
timmaaa said:
Hi, @ice_ice.
Please give proper credit for section 6 of your guide, that was almost entirely written by me. I know you mention to say thanks to me for the guide but that doesn't really make it clear that that section is (mostly) a copy of my work.
Thanks, and well done on your thread.
Click to expand...
Click to collapse
done , sorry for the inconvenient
black0000 said:
thanks for explanation of following tweaks
but
for voltage values i have better one
1.850mv for 100 & 200 mhz
2.950mv for 400mhz
3.1100mv for 800mhz
4.1150mv for 1000mhz
these values are highly stable.
Click to expand...
Click to collapse
yes , you can push it further , as it fit best with your daily use
i tested my value on different use , and situation , and it probably work fine in most situation
i have little concern about "1150mv for 1000mhz" , since i tried that and the phone freeze on heavy tasks , i tested that with endomondo and playing music with apolo , phone suddenly freezes , run tracking was ruined :crying:
since the phone use the following frequencies by order of % , 100mhz , 800mhz , 200mhz , 1000mhz , it is more interesting to tweak the 100mhz
ice_ice said:
yes , you can push it further , as it fit best with your daily use
i tested my value on different use , and situation , and it probably work fine in most situation
i have little concern about "1150mv for 1000mhz" , since i tried that and the phone freeze on heavy tasks , i tested that with endomondo and playing music with apolo , phone suddenly freezes , run tracking was ruined :crying:
since the phone use the following frequencies by order of % , 100mhz , 800mhz , 200mhz , 1000mhz , it is more interesting to tweak the 100mhz
Click to expand...
Click to collapse
I'm using these values since one year no freezes at all
but remember although we have same processor but it's not identical since it is not possible to produce two identical thing
these values may be differ little bit.
also, freez may occur with other values not only 1000 mhz
like if ur 1000 mhz values is correct but 800mhz values is unstable then also freez occurs
ihave played asphalt 8, mc4,5 , most wanted gt racing2, real racing 3 etc. using these values in ics with no freeze.
:good:
black0000 said:
but remember although we have same processor but it's not identical since it is not possible to produce two identical thing
these values may be differ little bit.
Click to expand...
Click to collapse
didn't consider that , thx :highfive:
can you post screenshots for battery statistics and wacklocks from the performance menu :angel:
any way here is some batteries
*this one is 3,000mAh extended but so ugly
http://www.yoobao.com/en/product.asp?b_id=127&m_id=256&a_id=364
*others interesting (samsung wave battery dimensions are 64 mm x 43mm x 5 mm , so some alternative 3rd parties batteries )
2450mah - High capacity golden battery
Link Dream B494358vu 3.7v 2500mah Li-ion Battery
maxximus extra power 1700mah for samsung wave
Link Dream 3.7V 1700mAh Cell Phone Battery EB504465VU for Samsung Admire
Regards
ice_ice said:
:good: didn't consider that , thx :highfive:
can you post screenshots for battery statistics and wacklocks from the performance menu :angel:
Click to expand...
Click to collapse
my battery is 4 year old
so it doesn't deliver good performance
How to Install Android Lollipop on Samsung wave devices
Post updated
GearCM review
Updated
13- How to solve encryption is unsuccessful Error :
Gps file
@barbe31
any new roms coming !!??
I recently wanted to try out how well ART would work on a x86_64 desktop, so I downloaded the Android source code and compiled ART with m build-art-host.
I then decided to do some very unscientific benchmarks and I found out that for mostly IO-bound stuff (parsing a relatively simple file format), it's about twice as slow as OpenJDK 8 with its HotSpot VM, while for mostly GC-bound stuff (concatenation of 2 string constants in a for-loop), it's about 25 times as slow as OpenJDK with HotSpot on my PC. I also found out it's about 10% slower (for the GC-bound stufff) than on my phone.
My phone is a Samsung Galaxy A50 and my desktop has an AMD Ryzen 7 3700X, 16 GB of RAM and a NVMe SSD, so that was not the result I was expecting.
I thought: "Maybe something is wrong with the way I compiled ART?", so I ran the same benchmarks in an Android 10 x86_64 AVD as provided by Google, where I got the same results, so I think that rules out me doing something wrong with compiling ART.
Is ART really supposed to be this slow on x86_64? And is this due to the fundamental design of ART or is it just not properly optimized for x86_64 (due to most Android devices using ARM CPUs)?
@wb9688
I guess you compare things that are not comparable: ART is shorthand for Android Runtime & x86_64 is a CPU architecture.
ART performs the translation of the application's bytecode into native instructions that are later executed by the mobile device's runtime environment ( Linux Runtime ). This is done once - keyword: dex2oat - namely when app gets istalled.
IMHO if ever then you could compare performance of the CPU-architecture arm64 with x86_64 - both 64-bit - if both have same clock-speed, of course.
jwoegerbauer said:
@wb9688
I guess you compare things that are not comparable: ART is shorthand for Android Runtime & x86_64 is a CPU architecture.
ART performs the translation of the application's bytecode into native instructions that are later executed by the mobile device's runtime environment ( Linux Runtime ). This is done once - keyword: dex2oat - namely when app gets istalled.
IMHO if ever then you could compare performance of the CPU-architecture arm64 with x86_64 - both 64-bit - if both have same clock-speed, of course.
Click to expand...
Click to collapse
I know what ART is and that it could compile a Dalvik Executable ahead of time into a native binary.
However as the AMD Ryzen 7 3700X in my PC is much faster than the CPU in my Samsung Galaxy A50, I'd also expect ART to be much faster on my PC, which is not the case. The only reason I could think of would be that ART is not well optimized for x86_64 (for which it will have to generate different instructions as for e.g. ARM).
Thanks for clarification.