chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] Hello World execution time


From: Bobby Powers
Subject: Re: [Chicken-users] Hello World execution time
Date: Sun, 13 Mar 2011 21:51:28 -0700

I got similar, but slightly different results (Fedora 14, 64-bit, core i7):

(time per run in wall seconds)
c: 0.001086
bash: 0.002742
py: 0.000336
scm: 0.005199
pl: 0.000344

so bash slightly beat out perl, and chicken came in last of the 5. †Didn't bother with mono or java.

Source available:
https://github.com/bobbyp/helloworlds

so on a *nix box:
$ git clone†git://github.com/bobbyp/helloworlds.git
$ cd helloworlds
$ make

and it should give you a report shortly.

BUT, I think these tests lie. †I do the following:
$ strace -C -ttt ./hello.scm 2> chicken_report
$ strace -C -ttt ./hello.py 2> python_report

And strace nicely shows me for the chicken binary:
% time † † seconds †usecs/call † † calls † †errors syscall
------ ----------- ----------- --------- --------- ----------------
100.00 † †0.000064 † † † † † 3 † † † †19 † † † † † mmap
† 0.00 † †0.000000 † † † † † 0 † † † † 6 † † † † † read
† 0.00 † †0.000000 † † † † † 0 † † † † 1 † † † † † write
† 0.00 † †0.000000 † † † † † 0 † † † †12 † † † † 6 open
† 0.00 † †0.000000 † † † † † 0 † † † † 6 † † † † † close
† 0.00 † †0.000000 † † † † † 0 † † † † 3 † † † † 3 stat
† 0.00 † †0.000000 † † † † † 0 † † † † 8 † † † † † fstat
† 0.00 † †0.000000 † † † † † 0 † † † † 1 † † † † † lseek
† 0.00 † †0.000000 † † † † † 0 † † † † 8 † † † † † mprotect
† 0.00 † †0.000000 † † † † † 0 † † † † 2 † † † † † munmap
† 0.00 † †0.000000 † † † † † 0 † † † † 6 † † † † † brk
† 0.00 † †0.000000 † † † † † 0 † † † † 1 † † † † 1 access
† 0.00 † †0.000000 † † † † † 0 † † † † 1 † † † † † execve
† 0.00 † †0.000000 † † † † † 0 † † † † 2 † † † † † getrusage
† 0.00 † †0.000000 † † † † † 0 † † † † 1 † † † † † arch_prctl
------ ----------- ----------- --------- --------- ----------------
100.00 † †0.000064 † † † † † † † † † †77 † † † †10 total

So, only†0.000064 seconds spent in the kernel (Python had 0.000626, an order of magnitide more). †I think the reporting of execution time may be skewed by scheduling or something funky like that. †That, or python (and perl)'s runtime is a _lot_ faster to initialize than chicken. Is that possible?

yours,
Bobby

On Sun, Mar 13, 2011 at 8:26 PM, Daniel Aquino <address@hidden> wrote:
Here's one of the links: http://www.haskell.org/haskellwiki/Simple_unix_tools



On 3/13/11, Daniel Aquino <address@hidden> wrote:
> Haskell should be just as fast as c especially for something that
> basic. †There is a whole set of common unix utilities implemented in
> very short one liners.
>
> On 3/13/11, John J Foerch <address@hidden> wrote:
>> Tobia Conforto <address@hidden> writes:
>>> "Hello,
>>>
>>> World execution time"ómay not be the most meaningful of benchmarks, but
>>> it's
>>> pretty important when you are writing shell scripts / cron jobs / random
>>> commandline utilities. It also serves to compare the startup overhead of
>>> different execution environments. So I ran this benchmark for my own
>>> curiosity
>>> and I thought you might like the results.
>>>
>>> Rules:
>>>
>>> † * the program should print "Hello, World!\n" and exit cleanly;
>>> † * no "benchmark modes" that would hinder real-world use of the
>>> language
>>> are
>>> † † allowed;
>>> † * no -e allowed: each program should run from its own file (source,
>>> bytecode
>>> † † or machine language as it may be.)
>>>
>>>
>>> I ran these on a fast, otherwise idle machine, doing 10 runs to warm it
>>> up, and
>>> then taking the median real time of 101 runs. (So yes, I like the median
>>> more
>>> than the mean, when measuring things.)
>>>
>>> [cid]
>>>
>>> The choice of languages is arbitrary. C is compiled, Mono and Java are
>>> poor-man's-compiled, the rest is interpreted. As for Chicken, don't
>>> bother
>>> asking: there is but a 2ms difference between csi and csc -O4 -block. I
>>> would
>>> have included Clojure, as I find the language itself not without its
>>> merits,
>>> but the current implementation is 4 times slower than plain Java and
>>> skewed the
>>> graph badly ;-)
>>>
>>> So that pretty much settles the question for me!
>>>
>>> cheers,
>>> Tobia
>>
>>
>> This is very interesting. †I would be interested to see haskell among
>> the set.
>>
>> --
>> John Foerch
>>
>>
>> _______________________________________________
>> Chicken-users mailing list
>> address@hidden
>> http://lists.nongnu.org/mailman/listinfo/chicken-users
>>
>
> --
> Sent from my mobile device
>

--
Sent from my mobile device

_______________________________________________
Chicken-users mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/chicken-users


reply via email to

[Prev in Thread] Current Thread [Next in Thread]