>
> I think your approach is flawed in several ways.
>
> maxheap is just specifying an upper memory limit, the VM is not going to
> attempt to allocate or reserve that much memory until it's actually
> needed.
>
> Instead, you could try to use the initialheap keyword with initVM() but
> that doesn't work as expected either. If the VM cannot reserve that much
> memory it doesn't exit gracefully. It sends a signal instead, killing the
> process. If you experiment with this be sure to _also_ set a maxheap value
> that is larger than the initialheap, otherwise you're going to get a
> different error from the VM, also signalled by a crash.
>

>> I didn't mean maxheap, it was a typo :) initialheap was what I meant.


>
> It seems to me that when any error occurs at VM start up time that has to
> do with errors in the arguments passed to it, it doesn't fail to start
> gracefully with an error that Python can report. It simply kills the process
> with a signal. I tried to set signal handlers for Python to handle the
> signal but it looks like the signal sent by the VM is one of the signals
> that can't be hooked (SIGKILL). I don't know how this behaves on Windows
> either.


>> Gracefully is exactly not a word I'd use :) It currently gives an error
that doesn't shut down the script, and I have to "sudo kill" it manually..
but that's probably because I'm messing with lucene.JavaErrors, trys and
excepts, in a ... messy way :)


>
>
> I also tried to see if there was a way to tell Java not to signal at all.
> Following this in gdb, it seems that it's using a function called
> JVM_RaiseSignal() to do its thing but I could not find any documentation
> about it nor is it declared in the <jni.h> header file.


>> Thanks for the effort :)


>
>
> A better approach to your problem might be to check via Python - before
> starting the VM - what kind of memory your system has and 'assume' that if
> enough is reported, the VM will be able to use it if you give it to it via
> the initialheap and maxheap keywords.


>> I'll try to do it this way. I was avoiding it 'cause I didn't want to use
any additional libraries and I'm not sure how to do it yet, but I'll
search.


----

By the way, the problem I was having with the initialheap / maxheap, it's
"windows" specific.. I can run my script in the same machine, in the Ubuntu
8.04 boot. I suppose it's a windows' specific problem.. Is there a setting
for "max memory usable by a VM?" in windows?

Also, I tried to compile my scripts to an exe file, so that it's easier to
use (no python needed..). I found some troubles with the jvm.dll but managed
to copy it to the directory of the compilation and it worked pretty well :)
And quite small as well.

And, to finish, I'd like to know how can I cite PyLucene in a Bibliography
of a scientific article. It's pretty much the "software" core of my
application so, you do deserve a credit :D

Best Regards!

João Rodrigues
_______________________________________________
pylucene-dev mailing list
[email protected]
http://lists.osafoundation.org/mailman/listinfo/pylucene-dev

Reply via email to