Thanks,

having a C++ background, there is definitely a lot to learn about the JVM.

I'm wrote a script in Python that ran in about 10-12s and used up to 320MB
of memory.

I'm running a clojure repl from Emacs via jack-in.

What's the best way to adjust the heap size? swank-clojure and clojure-mode
don't say.

If I spin up the repl via lein swank, I can use the LEIN_JVM_OPTS, however
it affects only one of the JVMs started by lein swank, the one with jline.

Any advice? :)


2012/4/13 Alex Robbins <alexander.j.robb...@gmail.com>

> Yeah, sounds like it could definitely be a memory issue. This is one
> part where the JVM works a lot differently than I expected coming from
> a python background.
>
> Everybody may already know this, but the JVM only takes 64mb for the
> heap by default. You'll get an out of memory error if your program
> uses more than that. In contrast, python just takes all the memory it
> needs. As your program gets closer to the JVM memory limit it'll spend
> more and more time doing garbage collection, with less and less real
> work getting done. You can pass an -Xmx flag to give java access to
> more memory, which many (most?) programs do.
>
>
> On Thu, Apr 12, 2012 at 5:22 PM, David Nolen <dnolen.li...@gmail.com>
> wrote:
> > How much memory do Python & Go consume when you do this? Are you giving
> the
> > JVM enough memory?
> >
> >
> > On Thu, Apr 12, 2012 at 6:17 PM, László Török <ltoro...@gmail.com>
> wrote:
> >>
> >> Hi,
> >>
> >> I'm trying figure out how to load a huge file that contains some 800k
> pair
> >> of integers (two integers per line) which represent edges of a directed
> >> graph.
> >>
> >> So if the ith line has x and y, it means that there is an edge between x
> >> and y vertex in the graph.
> >>
> >> The goal is to load it in an array of arrays representation, where the
> kth
> >> array contains all the nodes, where there is a directed edge from the
> kth
> >> node to those nodes.
> >>
> >> I've attempted multiple variants of with-open reader and line-seq etc.
> but
> >> almost always ended up with OutMemoryException or sg VERY slow.
> >>
> >> My latest attempt that also does not work on the large input:
> >>
> >> (defn load-graph [input-f]
> >>   (with-open [rdr (io/reader input-f)]
> >>     (->> (line-seq rdr)
> >>         (map (fn [row]
> >>                (let [[v1str v2str] (str/split row #"\s")]
> >>                    [ (Integer/parseInt v1str) (Integer/parseInt v2str)
> ]))
> >>   )
> >>         (reduce (fn [G [v1 v2]]
> >>                   (if-let [vs (get G v1)]
> >>                     (update-in G [v1] #(conj % v2))
> >>                     (assoc G v1 [v2])))  { }  ))))
> >>
> >> I'm getting a bit frustrated as there are Python, Go implementations
> that
> >> load the graph in less the 5 seconds.
> >>
> >> What am I doing wrong?
> >>
> >> Thanks
> >>
> >> --
> >> László Török
> >>
> >> --
> >> 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 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 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
>



-- 
László Török

-- 
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