static void gui_bench_run() { register long t; register int i, n; register int *buf; register char *scr; int s; int x=0x55; char c, c1; long ts, tm, td; scr = vid_get_bitmap_fb(); s = vid_get_bitmap_width() * vid_get_bitmap_height(); // first calc bench looping overheads t = get_tick_count(); for (c=0; c<64; ++c) for (i=0; i<s; ++i) ; // empty loop t = get_tick_count() - t; ts = t; // looping overhead screen bench t = get_tick_count(); for (n=0; n<1024; ++n) for (i=0; i<0x10000/4; ++i) ; // empty loop t = get_tick_count() - t; tm = t; // looping overhead mem bench t = get_tick_count(); for (n=0; n<256; ++n) ; // empty loop t = get_tick_count() - t; td = t; // looping overhead disk bench // end overhead calc, now do the bench ... bench_to_draw = 2; bench.screen_output_bps = 0; gui_bench_draw(); t = get_tick_count(); for (c=0; c<64; ++c) for (i=0; i<s; ++i) scr[i] = c; t = get_tick_count() - t; t -= ts; // subtract looping overhead bench.screen_output_bps = s*64*100 / (t/10); bench_to_draw = 1; bench.screen_input_bps = 0; gui_bench_draw(); scr = vid_get_viewport_fb(); s = vid_get_bitmap_width()*2 * vid_get_viewport_height(); t = get_tick_count(); // using same looping, char i.o. register int ... for (c1=0; c1<64; ++c1) for (i=0; i<s; ++i) c = scr[i]; t = get_tick_count() - t; // .. so we can reuse 'ts' t -= ts; bench.screen_input_bps = s*64*100 / (t/10); bench_to_draw = 2; buf = malloc(0x10000); if (buf) { bench.memory_write_bps = 0; gui_bench_draw(); t = get_tick_count(); for (n=0; n<1024; ++n) for (i=0; i<0x10000/4; ++i) buf[i] = x; t = get_tick_count() - t; t -= tm; // subtract looping overhead bench.memory_write_bps = 0x10000*100 / (t/10) * 1024; bench_to_draw = 2; bench.memory_read_bps = 0; gui_bench_draw(); t = get_tick_count(); for (n=0; n<1024; ++n) for (i=0; i<0x10000/4; ++i) x = buf[i]; t = get_tick_count() - t; t -= tm; // subtract looping overhead bench.memory_read_bps = 0x10000*100 / (t/10) * 1024; bench_to_draw = 2; } x = open("A/BENCH.TMP", O_WRONLY|O_CREAT, 0777); if (x>=0) { bench.disk_write_raw_bps = 0; gui_bench_draw(); t = get_tick_count(); s=write(x, hook_raw_image_addr(), hook_raw_size()); t = get_tick_count() - t; close(x); bench.disk_write_raw_bps = s*100 / (t/10); bench_to_draw = 2; } x = open("A/BENCH.TMP", O_WRONLY|O_CREAT, 0777); if (x>=0) { bench.disk_write_mem_bps = 0; gui_bench_draw(); t = get_tick_count(); s=write(x, (void*)0x10000, 0xC00000); t = get_tick_count() - t; close(x); bench.disk_write_mem_bps = s*100 / (t/10); bench_to_draw = 2; } if (buf) { x = open("A/BENCH.TMP", O_WRONLY|O_CREAT, 0777); if (x>=0) { bench.disk_write_buf_bps = 0; gui_bench_draw(); s = 0; t = get_tick_count(); for (n=0; n<256; ++n) s+=write(x, buf, 0x10000); t = get_tick_count() - t; t -= td; // subtract looping overhead close(x); bench.disk_write_buf_bps = s*100 / (t/10); bench_to_draw = 2; } x = open("A/BENCH.TMP", O_RDONLY, 0777); if (x>=0) { bench.disk_read_buf_bps = 0; gui_bench_draw(); s = 0; t = get_tick_count(); for (n=0; n<256; ++n) s+=read(x, buf, 0x10000); t = get_tick_count() - t; t -= td; // subtract looping overhead close(x); bench.disk_read_buf_bps = s*100 / (t/10); bench_to_draw = 2; } free(buf); } remove("A/BENCH.TMP"); gui_bench_draw();}
trunk310+mod
For my S5 (I also posted this on Wikipedia):
uhm, this thread was not about the actual results of benchmarks. please don't hijack threads like these. you could have easily opened a new thread. it seems i'm constantly bashing you, i'm sorry, but it all boils down to the fact that a) you are the new guy and you dont seem to have read the wiki and the forum enough and b) i'm the evil forum moderator
p.s: there is a huge wiki page dedicated to benchmarks, it can be found here: Benchmarks - CHDK Wiki there you should post your results.QuoteFor my S5 (I also posted this on Wikipedia): - what page do you mean by that, somewhere in the wiki (wikia) or really somewhere in the wikipedia?
and no, you cant make your cam any faster... the "mod" can be found in the first post, the "quote" that actually is sourcecode.
This is again one of those nice situations where you generalize your case to *everyone*. The benchmark is mainly to compare different memory cards in cameras, because memory cards to make a big difference in speeds. The benchmark results for one specific memory card aren't particularly useful as they are probably very different for other cards and filesystems.
Apart from that, I still have to investigate some issues (or someone else) but they are low on my priority list, so I haven't really looked at them. The main concern is cache... As you can see in this image showing some benchmark results, the measured speeds change drastically when changing the ORDER of the tests. This suggests the benchmark is actually quite flawed, unless I made a mistake somewhere.
Started by careyer Feature Requests
Started by pkasperskyi AllBest's Builds
Started by bovirus General Help and Assistance on using CHDK stable releases
Started by dvip General Discussion and Assistance
Started by srsa_4c General Discussion and Assistance