Prev: Auto Form Submission
Next: FAQ Topic - Why does 1+1 equal 11? or How do I convert a string to a number? (2010-02-01)
From: Jorge on 21 Feb 2010 20:00 On Feb 1, 9:58 pm, Lasse Reichstein Nielsen <lrn.unr...(a)gmail.com> wrote: > Jorge <jo...(a)jorgechamorro.com> writes: > > Any ideas as for what would be a reasonable, short C vs. JS > > benchmark ? :-) > > I wouldn't want anything too short. Micro-benchmarks generally suck > at showing anything relevant for actual use. > > You could check out the computer language shootout (although I think > it's a little misleading to allow a Java implementation that is one > just JNI call to native code). Well, this "Micro-benchmark" falls clearly in the "too short" class, but... The results: C: 126.5 MHz i386/32 C: 126.5 MHz x86/64 FF3.6: 29.3 MHz FireBug OFF Chrome5.0.307.9: 26.8 MHz v8-shell: 25.4 MHz version 2.1.1.1 FF3.5.8 21.2 MHz FireBug OFF jsc: 9.0 MHz javascriptCore shell Safari4.0.4: 7.9 MHz javascriptCore Safari4.0.4: 1.8 MHz webInspector console FF 3.0.15: 1.7 MHz FireBug OFF Opera 10.5: 1.3 MHz Opera 9.64: 1.2 MHz Opera 10.10: 1.1 MHz FF3.6: 0.6 MHz FireBug Console Chrome5.0.307.9: 0.6 MHz Developer Tools console FF2.0.0.20: 0.2 MHz FireBug OFF The source code: ********************************************** javascript: var k= 20e6; n= k, v= 0, t= +new Date(); while (n) { v+= n/2/n; n--; } t= +new Date() -t; (this.alert || this.print)([(k/t/1e3).toFixed(1)+ " MHz", t+" ms", v]); ********************************************** C: volatile int RUN= 1; void alrmHandler (int status) { RUN= 0; } int main (int argc, char* argv[]) { double ctr= 0; double v= 0; struct itimerval timer; timer.it_interval.tv_sec= timer.it_interval.tv_usec= 0; timer.it_value.tv_usec= 0; timer.it_value.tv_sec= 1; signal(SIGALRM, alrmHandler); setitimer(ITIMER_REAL, &timer, 0); while (RUN) { ctr++; v+= ctr/2/ctr; } fprintf(stdout, "%.1f MHz, %.1f\n", ctr/1e6, v); fflush(stdout); return 0; } -- Jorge.
From: Jorge on 22 Feb 2010 06:36 On Feb 2, 2:39 am, RobG <rg...(a)iinet.net.au> wrote: > On Feb 1, 11:19 am, Jorge <jo...(a)jorgechamorro.com> wrote: > [...] > > > Any ideas as for what would be a reasonable, short C vs. JS > > benchmark ? :-) > > Is there any point? > > Such comparisons only really matter where you have a choice of doing > something in both languages and other criteria for discrimination are > (more-or-less) equal. > > For example, if the objective is a program that can be downloaded and > run in most browsers, C is probably a not a consideration no matter > how much faster it runs. On the other hand, if the requirement is for > complex server-side processing, javascript probably isn't in the race > as it doesn't have any built-in input/output mechanism and is > dependent on a suitable host environment. If requirements indicate a > scripting language, a platform-native shell script may be the best > choice. > > Do you have a proposed scenario? The ratio of processing power between them is changing every day. JS's processing power has increased in a few years in more than 2 orders of magnitude. It's still not (and will never be) as fast as a finely- tuned C program (*) could be. But, you need to know better in order to be able to decide -when JS is a viable option- where to draw the line that separates what's possible/advisable to do with it, and what's not. (*)A finely-tuned C program -that very likely- is going to take to write many times as long as in a higher-level dynamic language -with all the bells and whistles- such as e.g. JS. -- Jorge.
First
|
Prev
|
Pages: 1 2 3 4 5 Prev: Auto Form Submission Next: FAQ Topic - Why does 1+1 equal 11? or How do I convert a string to a number? (2010-02-01) |