[Armedbear-devel] ABCL and RMI

Robert Goldman rpgoldman at sift.net
Fri Nov 28 20:20:32 UTC 2014

Alessio Stalla wrote:
> Did you understand the RMI thing instead? My wild guess is that you're
> running your program in a container of some sort (e.g. an application
> server), or using a framework like Spring that allows to publish
> services via RMI. Then you might not find any mention of RMI in PRISM's
> sources.

Thanks for your suggestion. I'm not using any sort of container, and
PRISM isn't either (to the best of my knowledge -- it's a very big
system).  I think Mark is probably right and it's the Oracle/Sun
jvisualvm profiling stuff that's somehow causing this, but I can't tell.

I'm going to see if I can grok Eclipse well enough to use that to
profile: I know my code (heuristic search code) is bogging, probably
choking on memory or somehow thrashing. Unfortunately, the jvisualvm
just shows all these RMI threads as hot spots, making this a kind of
Heisenbug. :-/

> On Wed, Nov 26, 2014 at 9:16 AM, Mark Evenson <evenson at panix.com
> <mailto:evenson at panix.com>> wrote:
>     > On 25 Nov 2014, at 23:41, Robert Goldman <rpgoldman at sift.net
>     <mailto:rpgoldman at sift.net>> wrote:
>     >
>     > At the expense of following up on my own thread.....
>     >
>     > I have Java code that is calling Lisp according to some of the examples
>     > I have read.
>     >
>     > I make a single Interpreter object, then I look up a function as
>     defined in
>     > ABCL.
>     >
>     > I store these both on the java object that calls the ABCL function.
>     >
>     > Then multiple times I call <function>.execute() and catch the result.
>     >
>     > Could I inadvertently be creating a lot of LispThreads, causing my
>     system
>     > to eventually slow down and lock up?
>     Every call to Function.execute() will run in the invoking thread, so
>     unless the
>     invoked call path explicitly spawns a new thread, there should only
>     be as many
>     threads present as you are invoking.  LispThread is essentially a
>     wrapper
>     around a JVM thread that maintains a multi-threaded consistent view
>     of the
>     singleton Lisp environment as that JVM thread executes Lisp code.
>     As for “catch the result”:  do you just mean act on the return
>     value, or are
>     you using a Java catch clause?
>     Any chance you can put the source up publicly for me to have a shot
>     at running it?
>     --
>     "A screaming comes across the sky.  It has happened before but there
>     is nothing
>     to compare to it now."
>     _______________________________________________
>     Armedbear-devel mailing list
>     Armedbear-devel at common-lisp.net <mailto:Armedbear-devel at common-lisp.net>
>     http://mailman.common-lisp.net/cgi-bin/mailman/listinfo/armedbear-devel

Robert P. Goldman
Staff Scientist
Smart Information Flow Technologies (d/b/a SIFT, LLC)

319 1st Ave N., Suite 400
Minneapolis, MN 55401

Voice:    (612) 326-3934
Email:    rpgoldman at SIFT.net

More information about the armedbear-devel mailing list