RE: ARTICLE: Memory bandwidth

From: Ben Goertzel (ben@webmind.com)
Date: Sun Apr 15 2001 - 19:34:25 MDT


> I suspect, very much suspect, that you would have had
> nearly identical
> performance problems regardless of what language you used, and if you had
> spent man-hours debugging malloc(), you wouldn't have gotten so far into
> actual AI.

This is ~exactly~ the mindset I had a year and a half ago. Now, after much
practical experience with large-scale Java, I know better. Webmind is
probably the most complex and intensive Java program ever written in terms
of having vast numbers of different types of objects on different machines
in different threads. We studied everything ever written about JVM's and OO
programming, and used every design pattern known to man, and many new ones.
We arrived at amazingly efficient design patterns using arrays in tricky
ways to store data (int arrays storing various values accessed through bit
masking), and accessing these through elegant interfaces. Even so,
ultimately, we keep running up against the terrible inefficiency of the JVM
when used for a program of this scale. I really believe that the JVM simply
was never tested/tuned/tweaked on programs of this scale. C/C++ has been
used for really massive and intensive programs before, and is just plain
more robust in this regard.

Man-hours debugging malloc() suck. But we've spent numerous man-hours
working around Java's undocumented inefficiencies and limitations, and the
lack of adequate debuggers or working profilers, and in the end, we still
haven't solved the problems. The solutions are

-- give up on java for the performance-intensive, RAM-hogging parts of the
code, or
-- improve the JVM itself

I'd love to do the latter, we have plenty of ideas for how, but we lack the
resources ;p

ben



This archive was generated by hypermail 2.1.5 : Wed Jul 17 2013 - 04:00:36 MDT