Hi Robert,

Thanks for a thoughtful email!

> Simply stated, given that it stated clearly in this group that Clojure
> runs, on average, slower than the JVM, is the JVM's high memory-
> utilization a non-issue for the Clojure community as well?

In short: yes.

I'm only bothered by the JVM's memory utilization when I'm trying to  
run NetBeans or Eclipse on an anemic laptop, alongside my already  
large working set:

   PID COMMAND      %CPU   TIME   #TH #PRTS #MREGS RPRVT  RSHRD   
RSIZE  VSIZE
  1541 firefox-bi   1.7% 53:36.73  13   203-  1506  474M-   29M    
533M-  929M-
   786 OmniWeb      1.0% 12:32.08  23   309-  2805  353M-   33M    
465M-  924M-
  1923 NetNewsWir   0.5%  8:00.11  11   237   1969  176M    29M    
194M   618M
     0 kernel_tas   3.9% 56:06.45  66     2    578 7852K      0    
177M   348M
    59 WindowServ   8.1% 23:35.83   5   467   1513   26M+  141M   157M 
+  616M+
  2359 Mail         0.0% 13:18.39  14   324   1113   82M    59M    
149M   57

Even so, with 4GB of RAM on my laptop I'm rarely concerned by this --  
it's only when I throw VMware into the mix that I start to run out of  
free memory.

My company's standard server loadout for new machines is 16GB RAM, and  
most older ones are 4-8GB. The app server I use looks like this in top:

   6086     110  59    0  199M  155M sleep   13:24  0.05% java

Sure, under load that will increase, but it's still negligible in the  
context of available memory (only a few percent). Additionally, in my  
experience the memory "profile" of Java server applications is better  
than our C++ applications, which typically experience some bloating or  
memory leak issues.

I'd take steady-state 300MB memory consumption any day over a startup  
at 50MB ending up at 1.4GB after a couple of months' uptime (a  
situation I've seen with C++ server applications).

So, in short: if you're on a low-resource machine, running graphical  
Java clients: yes, the JVM's memory consumption might concern you, as  
will its startup time. If you're using a machine with more memory, or  
are building server software where memory consumption is relatively  
insignificant, then you're unlikely to spend any time worrying about it.


> Even if CPU performance was good, this

> kind of memory-utilization is unacceptable for application.  And that
> is the part that continues to baffle me - what am I missing that so
> many are willing to invest in Clojure and the JVM despite the
> performance characteristics that I have observed.

You're probably baffled because your definition of "unacceptable" is  
very different to most using Java SE/EE. The JVM is monolithic  
(something Project Jigsaw is trying to fix, precisely to reduce memory  
usage in constrained scenarios), but it doesn't bother most people  
running Java services on 2008/2009-era servers.

-R

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to