• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Junilu Lacar
  • Rob Spoor
  • Liutauras Vilda
  • Tim Cooke
Saloon Keepers:
  • Tim Moores
  • Piet Souris
  • Tim Holloway
  • Jj Roberts
  • Stephan van Hulst
  • Himai Minh
  • Carey Brown
  • Frits Walraven

Multiple calls jvm through JNI result in massave memory usage

Posts: 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I have a java program that is distributed through a jar file that can be run by itself, or is wrapped by a C++wrapper to be a windows service. The C++ code does next to nothing, it just takes the arguments sent in and calls the jvm.dll to launch the jar file passing in the options. The Java jar does all the actual work.
We support multi threading my launching multiple services/jar files.
Running multiple jar files through the command line works as expected, with each process having the same memory footprint and working the same.
When I run them as windows services, I get two different results based on how Ii start them.
if I start each service and wait till it is completely started before starting the next service, I see normal memory consumption.
if I start them as fast as I can, like how it normally would happen when starting up a machine, then memory consumption is much larger, I am seeing 5X the memory used. 300MB vs 1.5 GB. I can recreate this on windows 7, server 2003, and server 2008 so it does not appear to be anything with a particular system. I can't recreate this using the jar file alone. I have tried passing in a number of parameters to java to limit memory or force garbage collection as I think it is the memory that is being allocated to the jvm process that is the culprit as this only happens when the jvm is launching the process all at the same time, but have not found anything to get the memory allocation to be normal size. Does anyone have any idea what could be causing this? I have played around with a number of memory tools and search for a cause/fix for this online, but have not found anything similar to this.
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
    Bookmark Topic Watch Topic
  • New Topic