Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #29575
| From | Melzzzzz <mel@zzzzz.com> |
|---|---|
| Newsgroups | comp.lang.forth |
| Subject | Forth vs Java in calculating partial sum ;) |
| Date | 2014-04-12 19:11 +0200 |
| Organization | albasani.net |
| Message-ID | <libs3f$2r2$2@news.albasani.net> (permalink) |
Seems that Java bits Forth in optimizing tight loops. Eg division by
constant optimization is performed automatically.
Idea for bench is from:
http://lemire.me/blog/archives/2012/07/23/is-cc-worth-it/
bmaxa@maxa:~/examples/forth$ time gforth-fast -m 400M cumul.fs -e bye
62.1816300541229
116.054248397871
1666666616666667
real 0m1.249s
user 0m1.225s
sys 0m0.023s
bmaxa@maxa:~/examples/forth$ time java Cumul
378.7878787878788
1190.4761904761904
1666666616666667
real 0m0.247s
user 0m0.215s
sys 0m0.042s
bmaxa@maxa:~/examples/forth$ cat cumul.fs
: N 50000000 ;
: init_cumul
N 0 ?do
i 3 / i +
over i cells + !
loop ;
: cumul
dup @
N 1 ?do
over i cells + @
+ 2dup
swap i cells + !
loop
drop ;
: bench 2dup utime 2over execute drop utime
2swap d- d>f N s>f fswap f/ f. cr 2drop drop ;
N cells allocate throw
' init_cumul bench
' cumul bench
dup N 1 - cells + @ . cr
free throw
bmaxa@maxa:~/examples/forth$ cat Cumul.java
public class Cumul {
public static void sum(long[] data) {
if(data.length == 0) return;
for( int i = 1; i != data.length; ++i)
data[i] += data[i-1];
}
public static long[] givemeanarray(int N) {
long[] bigarray = new long[N];
for(int k = 0; k<N; ++k)
bigarray[k] = k+k/3;
return bigarray;
}
public static void test(int N) {
long bef = System.currentTimeMillis();
long[] data = givemeanarray(N);
long aft = System.currentTimeMillis();
System.out.println(N/(1000.0 * (aft-bef)));
bef = System.currentTimeMillis();
sum(data);
aft = System.currentTimeMillis();
System.out.println(N/(1000.0 * (aft-bef)));
System.out.println(data[N-1]);
}
public static void main(String[] args) {
test( 50 * 1000 * 1000 );
}
}
--
Click OK to continue...
Back to comp.lang.forth | Previous | Next — Next in thread | Find similar | Unroll thread
Forth vs Java in calculating partial sum ;) Melzzzzz <mel@zzzzz.com> - 2014-04-12 19:11 +0200
Re: Forth vs Java in calculating partial sum ;) Paul Rubin <no.email@nospam.invalid> - 2014-04-12 10:15 -0700
Re: Forth vs Java in calculating partial sum ;) Melzzzzz <mel@zzzzz.com> - 2014-04-14 22:15 +0200
Re: Forth vs Java in calculating partial sum ;) stephenXXX@mpeforth.com (Stephen Pelc) - 2014-04-14 23:20 +0000
Re: Forth vs Java in calculating partial sum ;) Melzzzzz <mel@zzzzz.invalid> - 2014-04-15 04:18 +0200
Re: Forth vs Java in calculating partial sum ;) m.a.m.hendrix@tue.nl - 2014-04-15 00:32 -0700
Re: Forth vs Java in calculating partial sum ;) stephenXXX@mpeforth.com (Stephen Pelc) - 2014-04-15 11:33 +0000
Re: Forth vs Java in calculating partial sum ;) Melzzzzz <mel@zzzzz.com> - 2014-04-15 15:55 +0200
Re: Forth vs Java in calculating partial sum ;) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-04-15 14:44 +0000
Re: Forth vs Java in calculating partial sum ;) Paul Rubin <no.email@nospam.invalid> - 2014-04-15 09:00 -0700
Re: Forth vs Java in calculating partial sum ;) Melzzzzz <mel@zzzzz.invalid> - 2014-04-15 19:38 +0200
Re: Forth vs Java in calculating partial sum ;) mhx@iae.nl - 2014-04-15 11:41 -0700
Re: Forth vs Java in calculating partial sum ;) Melzzzzz <mel@zzzzz.com> - 2014-04-16 07:10 +0200
Re: Forth vs Java in calculating partial sum ;) Melzzzzz <mel@zzzzz.com> - 2014-04-16 07:24 +0200
Re: Forth vs Java in calculating partial sum ;) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-04-16 10:24 +0000
Re: Forth vs Java in calculating partial sum ;) mhx@iae.nl - 2014-04-12 13:01 -0700
Re: Forth vs Java in calculating partial sum ;) mhx@iae.nl - 2014-04-12 13:06 -0700
Re: Forth vs Java in calculating partial sum ;) Paul Rubin <no.email@nospam.invalid> - 2014-04-12 15:49 -0700
Re: Forth vs Java in calculating partial sum ;) mhx@iae.nl - 2014-04-12 23:00 -0700
Re: Forth vs Java in calculating partial sum ;) Paul Rubin <no.email@nospam.invalid> - 2014-04-13 00:14 -0700
Re: Forth vs Java in calculating partial sum ;) mhx@iae.nl - 2014-04-13 02:03 -0700
Re: Forth vs Java in calculating partial sum ;) Bernd Paysan <bernd.paysan@gmx.de> - 2014-04-13 14:52 +0200
Re: Forth vs Java in calculating partial sum ;) "WJ" <w_a_x_man@yahoo.com> - 2014-12-12 23:45 +0000
Re: Forth vs Java in calculating partial sum ;) mhx@iae.nl - 2014-04-12 13:33 -0700
Re: Forth vs Java in calculating partial sum ;) Bernd Paysan <bernd.paysan@gmx.de> - 2014-04-12 22:50 +0200
Re: Forth vs Java in calculating partial sum ;) Melzzzzz <mel@zzzzz.invalid> - 2014-04-13 03:30 +0200
Re: Forth vs Java in calculating partial sum ;) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-04-13 13:43 +0000
Re: Forth vs Java in calculating partial sum ;) Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-04-15 10:05 -0500
Re: Forth vs Java in calculating partial sum ;) "WJ" <w_a_x_man@yahoo.com> - 2014-12-05 05:46 +0000
Re: Forth vs Java in calculating partial sum ;) "WJ" <w_a_x_man@yahoo.com> - 2014-12-10 09:50 +0000
Re: Forth vs Java in calculating partial sum ;) "WJ" <w_a_x_man@yahoo.com> - 2014-12-10 18:29 +0000
csiph-web