I always run my REPL inside of Counterclockwise, but as far as I know it uses leiningen to launch the REPL. In any case, when I attach a profiler such as the built-in jvisualvm to the REPL process, it clearly says that the REPL is running in 64-bit server mode.
On Thu, May 14, 2015 at 2:29 PM, Lee Spector <lspec...@hampshire.edu> wrote: > FWIW if I run with no :jvm-opts at all then I often crash with an > out-of-memory error, so I do know that whatever happens by default doesn't > do what I'm doing with respect to memory, at least. > > I don't know what happens with respect to the other issues (tiered > compilation and whatever else) by default, or with -server, etc. > > -Lee > > > On May 14, 2015, at 4:59 PM, Colin Yates <colin.ya...@gmail.com> wrote: > > Now I feel even more of an ignoramus :) > On 14 May 2015 21:57, "Mark Engelberg" <mark.engelb...@gmail.com> wrote: > >> I know that remembering to put "-server" used to be a huge issue, but I >> thought that on all recent versions of Java on all modern 64-bit machines, >> -server is now the default. I thought it was a non-issue at this point. >> Is that incorrect? >> >> On Thu, May 14, 2015 at 1:54 PM, Colin Yates <colin.ya...@gmail.com> >> wrote: >> >>> Probably not helpful, but I tend to rely on the jvm optimisations and >>> just -server. I figured this is an area where a little knowledge is a >>> dangerous thing. >>> >>> At the very least I would have a realistic benchmark suite to prove to >>> myself that these gains were worth it. In my experience the performance >>> bottleneck is always in design. >>> >>> Just my 2p, although with my self-confessed ignoramus status it is more >>> like 0.5p :). >>> On 14 May 2015 21:46, "Lee Spector" <lspec...@hampshire.edu> wrote: >>> >>>> I'd like to get more guidance on how to specify :jvm-opts for maximum >>>> performance. I've received some help on this topic from people on this list >>>> in the past (thanks!), but I'm pretty sure that I'm still not doing things >>>> right. >>>> >>>> I'm almost always interested in maximum performance for long-running, >>>> compute-intensive and memory-intensive processes, almost never caring much >>>> at all about startup time or anything else. >>>> >>>> I also run my code on different machines, with different numbers of >>>> cores and amounts of memory, and would prefer to be able to put something >>>> in my project.clj that will do something reasonable regardless of what >>>> machine it's running on. >>>> >>>> I run my code with "lein run", and I'd like whatever I need to "run >>>> fast" to be in project.clj. >>>> >>>> I don't know a lot about JVM options, and I've tried to figure out what >>>> to specify for :jvm-opts by asking questions here and web searches, but I'm >>>> not at all confident that I'm doing it right yet. And because my systems >>>> are also stochastic, it's not easy for me to do timing tests on the options >>>> I've tried. >>>> >>>> I think there are options relevant to memory and also garbage >>>> collection and maybe also compilation... and what else? I wish there was a >>>> simple switch to get maximum performance of the sort I've outlined here (or >>>> at least a reasonable stab at it), but I gather that there isn't. >>>> >>>> Anyway, here's what I've been using recently, which just deals with >>>> memory and GC (and maybe not in the best way): >>>> >>>> :jvm-opts ~(let [mem-to-use (long (* (.getTotalPhysicalMemorySize >>>> >>>> (java.lang.management.ManagementFactory/getOperatingSystemMXBean)) >>>> 0.8))] >>>> [(str "-Xmx" mem-to-use) >>>> (str "-Xms" mem-to-use) >>>> "-XX:+UseG1GC"]) >>>> >>>> After seeing Alex's post I thought that maybe I should add "-server", >>>> as follows: >>>> >>>> :jvm-opts ~(let [mem-to-use (long (* (.getTotalPhysicalMemorySize >>>> >>>> (java.lang.management.ManagementFactory/getOperatingSystemMXBean)) >>>> 0.8))] >>>> [(str "-Xmx" mem-to-use) >>>> (str "-Xms" mem-to-use) >>>> "-XX:+UseG1GC" >>>> "-server"]) >>>> >>>> Is that right? Does it make sense? What does "-server" do? Also, should >>>> I also be using "^:replace"? >>>> >>>> I've looked in >>>> https://github.com/technomancy/leiningen/blob/master/sample.project.clj >>>> in hopes that this would say more about this stuff, but it doesn't say >>>> anything about -server or ^:replace. >>>> >>>> Looking into the compilation options, it looks from >>>> https://github.com/technomancy/leiningen/wiki/Faster that I should be >>>> specifying: >>>> >>>> :jvm-opts ^:replace [] >>>> >>>> This is also familiar to me from some earlier discussions. But how >>>> would I combine this with the memory/GC/server(?) options above? >>>> >>>> A guess would be that maybe I should do this: >>>> >>>> :jvm-opts ^:replace >>>> ~(let [mem-to-use (long (* (.getTotalPhysicalMemorySize >>>> >>>> (java.lang.management.ManagementFactory/getOperatingSystemMXBean)) >>>> 0.8))] >>>> [(str "-Xmx" mem-to-use) >>>> (str "-Xms" mem-to-use) >>>> "-XX:+UseG1GC" >>>> "-server" >>>> "-XX:-TieredCompilation"]) >>>> >>>> Note that this guess involves changing a + to a - in the last line, >>>> which was suggested for the opposite purpose at >>>> https://github.com/technomancy/leiningen/wiki/Faster -- but I don't >>>> know if it's legitimate. >>>> >>>> Is this a reasonable thing to do to get maximum performance for >>>> long-running, compute-intensive and memory-intensive processes? >>>> >>>> Is the tiered compilation thing maybe already done by including >>>> "-server"? >>>> >>>> I'm probably at least somewhat confused about several different issues >>>> here... >>>> >>>> Any help or pointers would be appreciated. >>>> >>>> Thanks, >>>> >>>> -Lee >>>> >>>> >>>> >>>> >>>> > On May 14, 2015, at 3:47 PM, Alex Miller <a...@puredanger.com> wrote: >>>> > >>>> > Gah. Meant in project.clj: >>>> > >>>> > :jvm-opts ^:replace ["-server"] ;; maybe also set max heap with >>>> "-Xmx1g" in there >>>> > >>>> >>>> -- >>>> 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 >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "Clojure" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to clojure+unsubscr...@googlegroups.com. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >>> 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 >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "Clojure" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to clojure+unsubscr...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> >> -- >> 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 >> --- >> You received this message because you are subscribed to the Google Groups >> "Clojure" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to clojure+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > > -- > 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 > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > > > -- > Lee Spector, Professor of Computer Science > Director, Institute for Computational Intelligence > Cognitive Science, Hampshire College > 893 West Street, Amherst, MA 01002-3359 > lspec...@hampshire.edu, http://hampshire.edu/lspector/ > Phone: 413-559-5352, Fax: 413-559-5438 > > -- > 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 > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- 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 --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.