If you want to get more deeply into JVM memory tuning, *perhaps* jClarity's
Censum tool can help: https://www.jclarity.com/censum/. It will run an
analysis of your specific applications memory usage patterns and make
suggestions how to configure the JVM for it.



Aria Media Sagl
+41 (0)76 303 4477 cell
skype: ariamedia

On Mon, Mar 28, 2016 at 4:45 PM, Gary Trakhman <gary.trakh...@gmail.com>
wrote:

> I always work in a single process, REPL and server, there's no need to
> separate them out generally.
>
> You might have better luck with the G1 collector, in addition to JVM
> tuning.  The G1 has the useful property of giving memory back to the OS
> when a GC is performed.
> Use the command-line flag: -XX:+UseG1GC
>
> If this is confusing, in short, PHP is 'interpreted', thus it's leaner and
> slower than a 'compiled' language like clojure.  There's a lot of stuff
> that needs to be loaded for clojure to work (the compiler lives in memory),
> and you'll take a hit in startup-time and memory footprint.  Some of this
> is java-specific, probably CLJS on V8 can do better in terms of memory
> footprint.
>
> On Mon, Mar 28, 2016 at 10:36 AM Michael Willis <willismich...@gmail.com>
> wrote:
>
>> You can tune memory usage by passing parameters to the JVM:
>>
>> http://docs.oracle.com/cd/E19900-01/819-4742/abeik/index.html
>>
>> The sample leiningen project file has an example of how to pass
>> parameters to the JVM:
>>
>>
>> https://github.com/technomancy/leiningen/blob/master/sample.project.clj#L264
>>
>> Hope that helps,
>> Michael Willis
>>
>>
>>
>> On Monday, March 28, 2016 at 7:11:49 AM UTC-5, Jason Basanese wrote:
>>>
>>> Hello all! I'm new to this forum. My name Is Jason Basanese and I am a
>>> relatively new clojurist.
>>>
>>> I recently began hosting my first small full stack Clojure web app.
>>> While doing this I ran into memory problems with my admittedly small load
>>> server. The maximum it can take in temp memory is 741MB. Too much of that
>>> memory is consumed giving an error when I try to run two REPLs on the
>>> server. One for testing and editing code and the other for leaving the app
>>> running. My other dynamic content websites which use php directly with
>>> Apache use minimal memory. Why is it that running a Clojure app like such
>>> "lein run -m clojureweb.core/serve" takes up so much memory? Here is the
>>> code of the function I am running with that command.
>>>
>>> (defn serve [& args]
>>>   (org.apache.log4j.BasicConfigurator/configure)
>>>   (run-server
>>>    (logger/wrap-with-logger
>>>     (reload/wrap-reload app))
>>>    {:port 8080}))
>>>
>>> Are the logger or the wrap-reload making it take up so much memory? Is
>>> there a better way to run Clojure apps that is less robust? Or is using a
>>> relatively large amount of memory just a bullet to bite when using Clojure?
>>> Yes I know an obvious solution would just be to upgrade the server, but
>>> where's the fun in that?
>>>
>>> Requests for more detail, comments, answers and opinions all welcome!
>>>
>>> --
>> 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.

Reply via email to