in reply to Re^3: Are monks hibernating?
in thread Are monks hibernating?
For speed you do have to go to C or assembler
You certainly don't have to drop that far. I certainly wouldn't entertain doing much of anything in a language that doesn't support automatic memory management. And there are plenty of languages that do that can match the performance of C. Or even exceed it for some applications.
Nip over to The Great Computer Language Shootout to see what I mean. Take a look at Perl's lousy showing in the recursive Benchmark for what I mean about subroutine/method performance.
The lack of tail recursion optimisation accounts for some, but by no means all of the problem. There is a substantial overhead in simple calling a subroutine, which effectively penalises the use of subroutines for abstraction unless they do a fairly substantial amount of work to amortise the overheads. Once you move to using OO, you add another bunch of overheads in class lookup; dereferencing instance vars; inheritance resolution; et al. And OO encourages the use of small methods. If you implement a nicely architected solution, it runs like a dog.
Maybe that's a necessary penalty for the benefits of using a dynamic language, but even without jit, Java seems to do a whole lot better.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: Are monks hibernating?
by shmem (Chancellor) on Feb 15, 2007 at 15:27 UTC | |
by BrowserUk (Patriarch) on Feb 17, 2007 at 01:28 UTC | |
|
Re^5: Are monks hibernating?
by talexb (Chancellor) on Feb 14, 2007 at 15:26 UTC | |
by BrowserUk (Patriarch) on Feb 14, 2007 at 16:38 UTC | |
|
Re^5: Are monks hibernating?
by bart (Canon) on Feb 16, 2007 at 11:20 UTC | |
by BrowserUk (Patriarch) on Feb 16, 2007 at 11:46 UTC | |
by pKai (Priest) on Feb 16, 2007 at 23:54 UTC |