From: Martin Dalecki <dalecki@evision-ventures.com>
To: landley@webofficenow.com, linux-kernel@vger.kernel.org
Subject: Re: [OT] Threads, inelegance, and Java
Date: Wed, 20 Jun 2001 19:36:48 +0200 [thread overview]
Message-ID: <3B30DF30.9ED9889B@evision-ventures.com> (raw)
In-Reply-To: <20010620042544.E24183@vitelus.com> <01062007252301.00776@localhost.localdomain>
Rob Landley wrote:
> The same arguments were made 30 years ago about writing the OS in a high
> level language like C rather than in raw assembly. And back in the days of
> the sub-1-mhz CPU, that really meant something.
And then those days we are still writing lot's of ASM in kernels...
> I don't know about that. The 8 bit nature of java bytecode means you can
> suck WAY more instructions in across the memory bus in a given clock cycle,
> and you can also hold an insane amount of them in cache. These are the real
What about the constant part of instructions? What about the alignment
characteristics
of current CPU busses?
> performance limiting factors, since the inside of your processor is clock
> multiplied into double digits nowdays, and that'll only increase as die sizes
> shrink, transistor budgets grow, and cache sizes get bigger.
>
> In theory, a 2-core RISC or 3-core VLIW processor can execute an interpretive
> JVM pretty darn fast. Think a jump-table based version (not quite an array
Bullshit! In theory the JVM resembles some very very old instruction
set well suited for a CISC CPU. In esp. the leak of registers is even
bigger
then on i386 arch. And bloody no compiler will be able to optimize this
sanely... And then there arises the problem of local variable management
and
so on. There where attempts already made to design a CPU according to
this
specs. As far as one can see they have all failed. Even Sun himself gave
up
his design. The compact instruction set is due to Javas inheritance from
the embedded world - nothing else. Too compact instruction set designs
make
for very nasty instruction decoders and therfore slow CPUs. This
complexity can be better overcome by the IBM memmory compressor chip
then in the instruction set itself.
> Or if you like the idea of a JIT, think about transmeta writing a code
> morphing layer that takes java bytecodes. Ditch the VM and have the
> processor do it in-cache.
Blah blah blah. The performance of the Transmeta CPU SUCKS ROCKS. No
matter
what they try to make you beleve. A venerable classical desing like
the Geode outperforms them in any terms. There is simple significant
information
lost between compiled code and source code. Therefore no JIT compiler
in this world will ever match the optimization opportunities of a
classic
C compiler! IBM researched opportunities for code morphing long ago
before
Transmeta come to live - they ditched it for good reasons. Well the
actual
paper states that the theorethical performance was "just" 20% worser
then
a comparable normal design. Well "just 20%" is a half universe diameter
for
CPU designers.
> This doesn't mean java is really likely to outperform native code. But it
> does mean that the theoretical performance problems aren't really that bad.
> Most java programs I've seen were written by rabid monkeys, but that's not
> the fault of the language. [1].
Think garbage collector - this explains nearly 90% of the performance
problems
Java code has. The remaining 10% are still by a factor of 10 bad in
comparision to classical code. Think zero copy on write - most Java code
induces insane
amounts of copyiing data around for no good reaons (Sring class and
friends
for example). Java code will never ever perform well.
> How many instructions does your average processor really NEED? MIT's first
> computer had 4 instructions: load, save, add, and test/jump. We only need 32
> or 64 bits for the data we're manipulating. 8 bit code is a large part of
> what allowed people to write early video games in 8k of ram.
Ton's of them. Please just remember how the RISC instruction set designs
evolved
over time. It was no accident!
--
- phone: +49 214 8656 283
- job: eVision-Ventures AG, LEV .de (MY OPINIONS ARE MY OWN!)
- langs: de_DE.ISO8859-1, en_US, pl_PL.ISO8859-2, last ressort:
ru_RU.KOI8-R
next prev parent reply other threads:[~2001-06-20 17:39 UTC|newest]
Thread overview: 152+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-06-19 14:53 accounting for threads Dan Kegel
2001-06-19 14:57 ` J . A . Magallon
2001-06-19 15:44 ` ognen
2001-06-19 15:58 ` Alan Cox quote? (was: Re: accounting for threads) Dan Kegel
2001-06-19 16:02 ` David S. Miller
2001-06-19 16:12 ` Padraig Brady
2001-06-19 19:10 ` bert hubert
2001-06-19 19:18 ` Alan Cox
2001-06-19 19:32 ` bert hubert
2001-06-19 19:43 ` Alexander Viro
2001-06-20 15:22 ` Jes Sorensen
2001-06-20 15:33 ` Alexander Viro
2001-06-20 15:59 ` Threads are processes that share more bert hubert
2001-06-20 16:15 ` Alexander Viro
2001-06-20 18:48 ` Martin Devera
2001-06-20 19:19 ` Unknown PCI Net Device Greg Ingram
2001-06-20 22:53 ` Andreas Dilger
2001-06-20 22:56 ` Jeff Garzik
2001-06-20 23:00 ` Alan Cox
2001-06-20 22:08 ` Threads are processes that share more Stephen Satchell
2001-06-20 22:14 ` ognen
2001-06-20 23:10 ` J . A . Magallon
2001-06-24 23:47 ` Larry McVoy
2001-06-25 2:23 ` David S. Miller
2001-06-20 16:39 ` Alan Cox quote? (was: Re: accounting for threads) george anzinger
2001-06-20 18:35 ` Alexander Viro
2001-06-21 4:11 ` Rusty Russell
2001-06-21 23:37 ` Alexander Viro
2001-06-21 23:55 ` Alexander Viro
2001-06-22 14:53 ` Richard Gooch
2001-06-20 16:40 ` Jes Sorensen
2001-06-20 20:09 ` Rob Landley
2001-06-20 19:05 ` Victor Yodaiken
2001-06-20 14:35 ` Mike Porter
2001-06-20 11:56 ` Rob Landley
2001-06-19 16:02 ` Ben Pfaff
2001-06-19 16:09 ` Larry McVoy
2001-06-19 16:26 ` Matthew Kirkwood
2001-06-19 16:52 ` Larry McVoy
2001-06-19 18:18 ` Rob Landley
2001-06-19 23:31 ` Timur Tabi
2001-06-20 11:52 ` Rob Landley
2001-06-20 21:20 ` Albert D. Cahalan
2001-06-20 18:12 ` Rob Landley
2001-06-20 23:28 ` Dan Podeanu
2001-06-21 0:42 ` D. Stimits
2001-06-20 20:18 ` Rob Landley
2001-06-21 1:57 ` D. Stimits
2001-06-21 14:46 ` Idea: Patches-from-linus mailing list? (Was Re: Alan Cox quote? (was: Re: accounting for threads)) Rob Landley
2001-06-21 14:02 ` Alan Cox quote? (was: Re: accounting for threads) Jesse Pollard
2001-06-21 14:18 ` Rob Landley
2001-06-22 14:46 ` Mikulas Patocka
2001-06-22 13:29 ` Rob Landley
2001-06-24 21:41 ` J . A . Magallon
2001-06-24 16:55 ` Rob Landley
2001-06-24 22:30 ` J . A . Magallon
2001-06-24 18:21 ` Rob Landley
2001-06-25 13:48 ` J . A . Magallon
2001-06-24 22:39 ` Steven Walter
2001-06-24 23:50 ` Larry McVoy
2001-06-24 20:24 ` Rob Landley
2001-06-25 0:05 ` J . A . Magallon
2001-06-25 0:32 ` Gerhard Mack
2001-06-25 0:59 ` Davide Libenzi
2001-06-25 2:18 ` Galen Hancock
2001-06-20 14:59 ` Matthias Urlichs
2001-06-20 19:14 ` Victor Yodaiken
2001-06-20 21:01 ` RE:Why use threads ( was: Alan Cox quote?) David Schwartz
2001-06-20 21:26 ` Why " Victor Yodaiken
2001-06-20 22:18 ` David Schwartz
2001-06-20 22:41 ` Davide Libenzi
2001-06-20 22:47 ` [OT] " Jeff Garzik
2001-06-21 0:21 ` David Schwartz
2001-06-21 0:56 ` Davide Libenzi
2001-06-21 1:32 ` David Schwartz
2001-06-21 2:22 ` Davide Libenzi
2001-06-21 2:43 ` David Schwartz
2001-06-21 16:10 ` Davide Libenzi
2001-06-21 19:55 ` Marco Colombo
2001-06-20 22:43 ` Mike Castle
2001-06-21 1:43 ` David Schwartz
2001-06-19 17:10 ` Alan Cox quote? (was: Re: accounting for threads) Matti Aarnio
2001-06-19 17:20 ` Mike Castle
2001-06-19 17:37 ` Larry McVoy
2001-06-19 17:45 ` Mike Castle
2001-06-19 18:08 ` Georg Nikodym
2001-06-19 19:38 ` Georg Nikodym
2001-06-19 19:56 ` Michael Meissner
2001-06-19 17:53 ` Steve Underwood
2001-06-19 19:01 ` Alan Cox
2001-06-20 2:57 ` Michael Rothwell
2001-06-20 3:04 ` Larry McVoy
2001-06-20 3:38 ` John R Lenton
2001-06-20 10:21 ` john slee
2001-06-20 18:08 ` Larry McVoy
2001-06-20 16:21 ` Davide Libenzi
2001-06-20 9:14 ` Alan Cox
2001-06-22 2:36 ` Michael Rothwell
2001-06-19 17:36 ` Jonathan Lundell
2001-06-19 17:41 ` Larry McVoy
2001-06-19 20:57 ` David S. Miller
2001-06-19 21:11 ` Jonathan Lundell
2001-06-19 21:15 ` David S. Miller
2001-06-19 23:56 ` Jonathan Lundell
2001-06-20 0:19 ` Mike Castle
2001-06-20 0:28 ` Larry McVoy
2001-06-20 1:30 ` Ben Greear
2001-06-20 2:14 ` Mike Castle
2001-06-20 9:00 ` Henning P. Schmiedehausen
2001-06-20 11:25 ` [OT] Threads, inelegance, and Java Aaron Lehmann
2001-06-20 11:25 ` Rob Landley
2001-06-20 17:36 ` Martin Dalecki [this message]
2001-06-20 19:27 ` Mike Harrold
2001-06-20 17:46 ` Rob Landley
2001-06-20 19:53 ` Martin Dalecki
2001-06-20 17:53 ` Rob Landley
2001-06-21 7:45 ` Albert D. Cahalan
[not found] ` <mailman.993067219.29993.linux-kernel2news@redhat.com>
2001-06-20 20:16 ` Pete Zaitcev
2001-06-20 22:05 ` Alan Cox
[not found] ` <20010621000725.A24672@werewolf.able.es>
2001-06-20 19:15 ` Rob Landley
2001-06-21 9:40 ` Jonathan Morton
[not found] ` <mailman.993083762.1429.linux-kernel2news@redhat.com>
2001-06-21 3:13 ` Pete Zaitcev
2001-06-21 13:59 ` Rob Landley
2001-06-21 16:48 ` Adam Sampson
2001-06-20 15:12 ` Ben Greear
2001-06-20 15:44 ` Russell Leighton
2001-06-20 16:32 ` Davide Libenzi
2001-06-20 16:54 ` Russell Leighton
2001-06-20 17:03 ` Tony Hoyle
2001-06-20 15:10 ` Rob Landley
2001-06-20 20:23 ` Tony Hoyle
2001-06-21 8:12 ` Henning P. Schmiedehausen
2001-06-20 20:40 ` Richard B. Johnson
2001-06-20 20:48 ` Tony Hoyle
2001-06-20 21:00 ` Daniel Phillips
2001-06-20 21:06 ` Richard B. Johnson
2001-06-20 18:14 ` Henning P. Schmiedehausen
2001-06-20 16:53 ` Larry McVoy
2001-06-20 12:36 ` Rob Landley
2001-06-20 21:14 ` Aaron Lehmann
2001-06-20 18:09 ` Henning P. Schmiedehausen
2001-06-20 19:05 ` William T Wilson
2001-06-20 0:04 ` Alan Cox quote? (was: Re: accounting for threads) Chris Ricker
2001-06-20 0:59 ` Robert Love
2001-06-19 18:01 ` Alan Cox quote? Kai Henningsen
2001-06-19 18:49 ` Larry McVoy
2001-06-19 21:12 ` Richard Gooch
2001-06-19 22:50 ` Henning P. Schmiedehausen
2001-06-19 20:12 ` Henning P. Schmiedehausen
-- strict thread matches above, loose matches on Subject: below --
2001-06-20 21:13 [OT] Threads, inelegance, and Java Holzrichter, Bruce
2001-06-20 21:17 ` Richard B. Johnson
2001-06-21 4:10 Dan Kegel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3B30DF30.9ED9889B@evision-ventures.com \
--to=dalecki@evision-ventures.com \
--cc=landley@webofficenow.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox