Here's the results of sk-tools benchmark (both overclocked at 624Mhz)
18533 (pdaviet 2.11.15F)
Integer : 311.2776 Moves/25usec
Floating point : 8.393 MWIPS
RAM access : 2213 Speed index
Draw bitmaps : 1391 Speed index
18538 (ivan v3.9)
Integer : 259.6454 Moves/25usec
Floating point : 6.934 MWIPS
RAM access : 1840 Speed index
Draw bitmaps : 1175 Speed index
Good thread, maybe it's time to start using some test tools for comparing results coming from different builds/ROMs.
Used SKTools v3.1.11.1.
My results from a already running Universal for a few days(no boot):
1 - Overclocked at 624Mhz:
Integer : 309.6257 Moves/25usec
Floating point : 6.965 MWIPS
RAM access : 1652 Speed index
Draw bitmaps : 1157 Speed index
Results after a cold boot:
1 - At 520Mhz:
Integer : 242.9738 Moves/25usec
Floating point : 7.008 MWIPS
RAM access : 1619 Speed index
Draw bitmaps : 1126 Speed index
2 - Overclocked at 624Mhz:
Integer : 307.1136 Moves/25usec
Floating point : 6.983 MWIPS
RAM access : 1635 Speed index
Draw bitmaps : 1134 Speed index
I have Ivan ce v3 (18538), my results:
Integer : 309.7286 Moves/25usec
Floating point : 8.375 MWIPS
RAM access : 2194 Speed index
Draw bitmaps : 920 Speed index
try to race with me
unreleased wm6 rom made by me running at 624
Integer : 350.1514 Moves/25usec
Floating point : 8.984 MWIPS
RAM access : 2308 Speed index
Draw bitmaps : 1691 Speed index
mo3ulla said:
try to race with me
unreleased wm6 rom made by me running at 624
Integer : 350.1514 Moves/25usec
Floating point : 8.984 MWIPS
RAM access : 2308 Speed index
Draw bitmaps : 1691 Speed index
Click to expand...
Click to collapse
wow! that's some speed! why is it not released yet?
MAMAICHs rebuilded sdhc drivers and transcend 8 gb class 6 with command query optimization
Storage Card (write); 1630.67;KB/sec
Storage Card (read); 4629.06;KB/sec
mo3ulla said:
MAMAICHs rebuilded sdhc drivers and transcend 8 gb class 6 with command query optimization
Storage Card (write); 1630.67;KB/sec
Storage Card (read); 4629.06;KB/sec
Click to expand...
Click to collapse
when will you release it?
mo3ulla said:
MAMAICHs rebuilded sdhc drivers and transcend 8 gb class 6 with command query optimization
Storage Card (write); 1630.67;KB/sec
Storage Card (read); 4629.06;KB/sec
Click to expand...
Click to collapse
Ok, Mo3ulla has my full attention now His previous ROMs have been fast as hell ... when is this one being released? can't wait to switch!!
Wow Smoking Rom!!!!
can't wait to test your super ROM.......Cheers!
mo3ulla said:
MAMAICHs rebuilded sdhc drivers and transcend 8 gb class 6 with command query optimization
Storage Card (write); 1630.67;KB/sec
Storage Card (read); 4629.06;KB/sec
Click to expand...
Click to collapse
by now sd drivers have some bugs and some not good things
1. sometimes after sleep sd write operatons totally not working .. sd becames as read only
2. command quering (addon for system storage manager) . takes some processor time 3-8% depens on many things..
3. system predictive read (new system service)(works on all system flash disks )- takes 2mb of ram // also not good for 64mb unis ... becose buffer size (this buffer creates for all disks ,, 1 disk 1 buffer) floating (2-10mb) also as feature this thing can lost data
4. also entire fat filesystem will stored in ram (1 mb)
5. system predictive write (service ) which virtually splits free space on blocks (1 mb free continius space then 3mb then 10 mb then 50 then 100mb ) this help system to define write place .. takes 1-2 mb (also it will alert about critical fragmentation )
and final thing ..... system storage (G3) via new imgfs driver and new services
Main storage (write); 1707.18;KB/sec
Main storage (read);3213.26;KB/sec
softreset in 15 seconds
With Pdaviet 2.11.15F (18533), my results:
Overclock at 624 mhz:
Integer : 311.2670 Moves/25usec
Floating point : 8.382 MWIPS
RAM access : 2204 Speed index
Draw bitmaps : 938 Speed index
Mike117 said:
With Pdaviet 2.11.15F (18533), my results:
Overclock at 624 mhz:
Integer : 311.2670 Moves/25usec
Floating point : 8.382 MWIPS
RAM access : 2204 Speed index
Draw bitmaps : 938 Speed index
Click to expand...
Click to collapse
I got faster results with this modifications:
1. Change the file system cache and file filters cache to automatic (0)
2. Change the glyph cache back to default (8192)
willy792003 said:
I got faster results with this modifications:
1. Change the file system cache and file filters cache to automatic (0)
Click to expand...
Click to collapse
How did you change it (where is it)?
Marco.
Jmp_3f8h said:
How did you change it (where is it)?
Marco.
Click to expand...
Click to collapse
HKLM\System\StorageManager\FATFS\CacheSize=0
HKLM\System\StorageManager\Filters\fsreplxfilt\ReplStoreCacheSize=0
willy792003 said:
Here's the results of sk-tools benchmark (both overclocked at 624Mhz)
18533 (pdaviet 2.11.15F)
Integer : 311.2776 Moves/25usec
Floating point : 8.393 MWIPS
RAM access : 2213 Speed index
Draw bitmaps : 1391 Speed index
18538 (ivan v3.9)
Integer : 259.6454 Moves/25usec
Floating point : 6.934 MWIPS
RAM access : 1840 Speed index
Draw bitmaps : 1175 Speed index
Click to expand...
Click to collapse
i think i know why there's so much diff. on ivan's rom, although i use the performance tool to oc to 624Mhz, it never really goes there (i use sk-tools to check the current cpu clock). so i am wondering is there anything needs to be done before i can oc my uni (registry edit, etc.)?
willy792003 said:
i think i know why there's so much diff. on ivan's rom, although i use the performance tool to oc to 624Mhz, it never really goes there (i use sk-tools to check the current cpu clock). so i am wondering is there anything needs to be done before i can oc my uni (registry edit, etc.)?
Click to expand...
Click to collapse
interesting.
and on other roms - when you check with sktools, you see 624mhz?
shlomki said:
interesting.
and on other roms - when you check with sktools, you see 624mhz?
Click to expand...
Click to collapse
yes. i see 624Mhz on pdaviet's rom.
this will prove that the performance tools doesn't have effect on ivan's v3.9
i install phm and oc my uni to 624Mhz
here's what i got:
Integer : 314.3258 Moves/25usec
Floating point : 8.395 MWIPS
RAM access : 2192 Speed index
Draw bitmaps : 1372 Speed index
now it's similar to what i get on pdaviet rom with performance tools.
any idea?
willy792003 said:
this will prove that the performance tools doesn't have effect on ivan's v3.9
any idea?
Click to expand...
Click to collapse
I have the same problem with latest Jwrightmcps rom (2.12.08): the performance tool (non shipped with the ROM, used as add-on) seems not having effect (altough it states that the overclock is active).
Maybe the performance tool is just an interface to configure some OS component not present in our ROMs
Marco.
Benchmarks, suggestions and researchs for kernel optimization
Hello guys,
these days I have done several comparative benchmarks of what can be achieved, at least in terms of performance, applying the existing optimization options or particular compiler flags and also the main kernel memory allocators.
This, I hope, is only the beginning...
I'd like that this thread could become a place where developers, experienced or not, can share their benchmark results, knowledge, suggestions on possible improvements, patches, etc designed to improve performance and / or stability of the kernel.
Inside the next posts, you can find the conducted benchmark results.
Thanks for your attention
PS. Sorry for my bad english...
Kernel Optimization Benchmarks
These are the results of the comparative benchmarks of the performance results that can be achieved using the different kernel optimization options (-Os, -O2, -O3), using cpu and floating point tuning (eg -march=armv7-a -mtune=cortex-a8 -mfpu=neon) and other additional compilation flags.
For these tests I've used different kernels based on Arco's 3.0.60 kernel sources and built using the same toolchain (optimized for generic Cortex-A cpu):
- pure kernel built selecting -Os optimization
- pure kernel built selecting -O2 optimization
- slighty modified kernel built selecting -O3 optimization (only two simple changes to add -O3 optimization option inside Makefile and init/Kconfig)
- slighty modified kernel built selecting -O3 optimization and with the following additional compilation flags inside Makefile
Code:
...
OPTIMIZATION_FLAGS = -march=armv7-a -mtune=cortex-a8 -mfpu=neon \
-ffast-math -fsingle-precision-constant \
-fgcse-lm -fgcse-sm -fsched-spec-load -fforce-addr
CFLAGS_MODULE = $(OPTIMIZATION_FLAGS)
AFLAGS_MODULE = $(OPTIMIZATION_FLAGS)
LDFLAGS_MODULE =
CFLAGS_KERNEL = $(OPTIMIZATION_FLAGS)
AFLAGS_KERNEL = $(OPTIMIZATION_FLAGS)
...
and
Code:
...
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
KBUILD_CFLAGS += -Os
endif
ifdef CONFIG_CC_OPTIMIZE_DEFAULT
KBUILD_CFLAGS += -O2
endif
ifdef CONFIG_CC_OPTIMIZE_MORE
KBUILD_CFLAGS += -O3 -fmodulo-sched -fmodulo-sched-allow-regmoves -fno-tree-vectorize
endif
ifdef CONFIG_CC_OPTIMIZE_FAST
KBUILD_CFLAGS += -Ofast
endif
...
The kernel has not been overclocked, I used the default min and max cpu frequencies (245 Mhz - 1401 Mhz) with Performance cpu governor and Noop I/O scheduler.
To perform each kernel benchmark, I made at least 3 test runs for each of the following tools:
- CF-Bench developed by XDA Developer Chainfire
- Antutu Benchmark
Benchmark final results
(the image is uploaded on Media Fire, if you can't see it, could be due to your proxy configuration)
You can find more detailed results (ods, xlsx and pdf format) and screenshots inside the following Media Fire folder: Results Folder
Conclusion:
As you can see, if compared with each other, -O2 optimization and -O3 optimization with additional flags give the best results in terms of performance, expecially using CF-Bench, but the differences are relatively small.
Thus, we can conclude by saying that the optimization flags above, do not do miracles, at least in terms of performance...
Memory Allocators Benchmarks
These are the results of the comparative benchmarks of the performance results that can be achieved selecting one of the different kernel memory allocators (SLUB, SLAB, SLOB and SLQB).
For these tests I've used different builds of the above descripted kernel (slighty modified kernel built selecting -O3 optimization and with the additional compilation flags):
- a build configured selecting the default SLUB memory allocator (the unqueued slab allocator V6)
- a build configured selecting the SLAB memory allocator (old and deprecated)
- a build configured selecting the SLOB memory allocator (a simpler memory allocator suitable for embedded devices with low memory)
- a build configured selecting the SLQB memory allocator (I modified the kernel sources to add it)
The kernel has not been overclocked, I used the default min and max cpu frequencies (245 Mhz - 1401 Mhz) with Performance cpu governor and Noop I/O scheduler.
To perform each kernel benchmark, I made at least 3 test runs for each of the following tools:
- CF-Bench developed by XDA Developer Chainfire
- Antutu Benchmark
Benchmark final results
(the image is uploaded on Media Fire, if you can't see it, could be due to your proxy configuration)
You can find more detailed results (ods, xlsx and pdf format) and screenshots inside the following Media Fire folder:
Results Folder
Conclusion:
In this case, if compared with each other, SLUB memory allocator (which is the default one) and SLQB memory allocator give the best results in terms of performance. The differences between these two are relatively small.
Patch:
If you want to add the SLQB memory allocator inside your JB kernel sources, you can use the following patch
SLQB_memory_allocator.patch
After downloading it inside your kernel sources folder:
Code:
[COLOR="Navy"]Show the changes inside the patch[/COLOR]
[B]git apply --stat SLQB_memory_allocator.patch[/B]
[COLOR="Navy"]Check if the patch could cause conflicts or other problems[/COLOR]
[B]git apply --check SLQB_memory_allocator.patch[/B]
[COLOR="Navy"]If all is ok, apply the patch[/COLOR]
[B]git am --signoff SLQB_memory_allocator.patch[/B]
Additional IO Scheduler Benchmarks
These are the results of the comparative benchmarks of the performance results that can be achieved selecting some of the additional IO scheduler we can find on many custom kernels.
I8150 - Samsung Galaxy W - ROW and SIO I/O schedulers comparison (Made by Hadidjapri)
These benchmarks have been made on I8150 by Hadidjapri.
For each I/O scheduler, he made 4 test runs using CF-Bench and setting the default min and max cpu frequencies (245 Mhz - 1024 Mhz) and the default SLUB memory allocator.
Benchmark final results
(the image is uploaded on Media Fire, if you can't see it, could be due to your proxy configuration)
I9001 - Samsung Galaxy S Plus - ROW, SIO and V(R) I/O schedulers comparison
For each I/O scheduler, I made 4 test runs using CF-Bench and setting Performance cpu governor with the default min and max cpu frequencies (245 Mhz - 1401 Mhz) and the default SLUB memory allocator.
Benchmark final results
(the images are uploaded on Media Fire, if you can't see them, could be due to your proxy configuration)
You can find more detailed results (ods, png and pdf format) inside the following Media Fire folder:
Results Folder
Conclusion:
For both devices, the best scheduler for I/O operations is SIO.
AW: Benchmarks, suggestions and researchs for kernel optimization
This is huge! Thank you so much!!
Sent from my GT-I9001 using xda app-developers app
WOW. This is extremely interesting! Thank you very much! These are awesome spreadsheets!
I'm going to publish these on my blog if it's okay with you. if it's not, Ill add the link of this XDA topic in Android Articles.
AWESOME. PERIOD
(I always secretly wanted to make spreadsheets like these regarding optimization, but I didn't knew how :silly
from what i see in the O3 optimization, i guess the additional build flags is a must otherwise it's only a fancy stuff which doesn't give anything
i have 2 questions regarding the benchmark
1. which one is more reliable, CF or antutu?
2. do you get large variance when testing for database IO? or is this happens only to me
broodplank1337 said:
WOW. This is extremely interesting! Thank you very much! These are awesome spreadsheets!
I'm going to publish these on my blog if it's okay with you. if it's not, Ill add the link of this XDA topic in Android Articles.
AWESOME. PERIOD
(I always secretly wanted to make spreadsheets like these regarding optimization, but I didn't knew how :silly
Click to expand...
Click to collapse
I'll be really happy if you publish these results inside your blog.
You can also use those spreadsheet as template, you're welcome!
Thank you!
hadidjapri said:
from what i see in the O3 optimization, i guess the additional build flags is a must otherwise it's only a fancy stuff which doesn't give anything
i have 2 questions regarding the benchmark
1. which one is more reliable, CF or antutu?
2. do you get large variance when testing for database IO? or is this happens only to me
Click to expand...
Click to collapse
I can say that no benchmarking tool is really reliable, I've tried many and I think it isn't actually possible to create or find a tool that always gives similar results on a system that still performs other operations without our control on them...
Antutu Benchmark is the benchmark tool every one of us know and use most, could not miss, though it is not the best in terms of reliability of the results. In particular, the first test should always be discarded because it is very different from the next, so each time I run 4/5 test and considered only the last 3 similar. In addition, I confirm that the database test and SD card tests often vary greatly.
CF-Bench is certainly more reliable and allowed me to make the detailed tests on memory allocation, but doesn't perform benchmarks on database and on the 2d and 3d graphics.
Even as a non-dev its intersting. Nice work
Nice job. Even though i dont own this phone anymore but im still interested of benchmarks. Saw one in antutu and the highest for your phones is about 7000+. The guy (I forgot who) said that he edited something in the build.prop to achieve that high score. Only thing I remember is that he posted the line in the q&a thread.
Juhan Jufri said:
Nice job. Even though i dont own this phone anymore but im still interested of benchmarks. Saw one in antutu and the highest for your phones is about 7000+. The guy (I forgot who) said that he edited something in the build.prop to achieve that high score. Only thing I remember is that he posted the line in the q&a thread.
Click to expand...
Click to collapse
debug.gr.swapinterval=0
which disables the 2d FPS cap, it preforms well on benchmark but sucks in reality, overheating your gpu for nothing, and all animations are bugged
Christopher, where did you get the custom Linaro toolchain optimized for Cortex-A?
R: Benchmarks, suggestions and researchs for kernel optimization
android1234567 said:
Christopher, where did you get the custom Linaro toolchain optimized for Cortex-A?
Click to expand...
Click to collapse
I've built myself, take a look here:
http://forum.xda-developers.com/showthread.php?t=2098133
Sent from my GT-I9001 using xda premium
i would like to benchmark ROW and SIO scheduler.
using CF Bench is enough right?
R: Benchmarks, suggestions and researchs for kernel optimization
hadidjapri said:
i would like to benchmark ROW and SIO scheduler.
using CF Bench is enough right?
Click to expand...
Click to collapse
Yes, you don't need to test 2d and 3d graphics, the results shouldn't change. So CF Bench is enough. Let me know your results, if you want...
Sent from my GT-I9001 using xda premium
Christopher83 said:
Yes, you don't need to test 2d and 3d graphics, the results shouldn't change. So CF Bench is enough. Let me know your results, if you want...
Sent from my GT-I9001 using xda premium
Click to expand...
Click to collapse
okay, i'll test it after i finish my class today. maybe 3-4hours later
hmm here's what i got
benchmark procedure and static variable used
1. test run at 1024MHz
2. both scheduler are tested for 4 times/batch
3. test is using CF Bench tool
4. memory allocator used is SLUB
link to pastebin
http://pastebin.com/SPrv1HVG
hadidjapri said:
hmm here's what i got
benchmark procedure and static variable used
1. test run at 1024MHz
2. both scheduler are tested for 4 times/batch
3. test is using CF Bench tool
4. memory allocator used is SLUB
link to pastebin
http://pastebin.com/SPrv1HVG
Click to expand...
Click to collapse
Thank you very much Hadidjapri!
I'm adding your benchmark results inside the first page...
Then I'll add my benchmark results too...
Christopher83 said:
Thank you very much Hadidjapri!
I'm adding your benchmark results inside the first page...
Then I'll add my benchmark results too...
Click to expand...
Click to collapse
Ok, first part completed.
Now, I'll collect my results and prepare the spreadsheet...
Christopher83 said:
Ok, first part completed.
Now, I'll collect my results and prepare the spreadsheet...
Click to expand...
Click to collapse
you mistype the clock sir. it's 245-1024 not 1401
Sent from my GT-I8150