On Wed, Jun 6, 2012 at 3:24 PM, Howard Lewis Ship [via Tapestry] < ml-node+s1045711n5713671...@n5.nabble.com> wrote:
> Tapestry has been noted to be effectively free of memory leaks. > Hi Howard, I'm pretty new to services, so I'm just not sure if I'm using them correctly. I've had the system go down three nights due to an out of memory error. > What release of Tapestry are you using? > v5.3.3 > > You seem to have a caching service here .. do you ever clear your > cache? Could the contents of your cache account for the memory usage? > Nothing in the cache, I've disabled all caching and just let the scheduler run outputting memory usage. > > Are you checking memory usage after running at least one full GC? If > you aren't running out of memory, Java is happy to let it clutter up > the place. > Perhaps I don't completely understand how GC works. I'll read up on this some more. > > You can use VisualVM to get an idea of what objects are in memory, > that might help identify what, if anything, is leaking. > I'll look into that as well. Thanks Howard. > > On Wed, Jun 6, 2012 at 12:19 PM, George Christman > <[hidden email] <http://user/SendEmail.jtp?type=node&node=5713671&i=0>> > wrote: > > > Hello, I've created a scheduler service and noticed a memory leak. I'm > using > > the exact code below to perform the test. I read an article related to > class > > reloading causing memory leaks, > > http://tapestry.apache.org/class-reloading.html However, I don't really > > understand what is being implied. I'm wondering if I'm doing something > wrong > > to cause this issue. After running the app from 14:56:23.026 through > > 15:16:30.222 with one second memory printouts I've noticed the following > > loss. > > > > Available memory JVM (bytes) 8826784 14:56:23.026 > > Available memory JVM (bytes) 6906536 15:16:30.222 > > > > //appmodule > > public static void bind(ServiceBinder binder) { > > binder.bind(SchedulerService.class, SchedulerServiceImpl.class); > > } > > > > @Startup > > public static void initApplication(SchedulerService scheduler) { > > scheduler.init(); > > } > > > > > > public static AutocompleteCacheService<ApplicationUser> > > buildUserAutocompleteCache() { > > return new AutocompleteCacheServiceImpl<ApplicationUser>() { > > }; > > } > > > > public static AutocompleteCacheService<IfasvVendor> > > buildVendorAutocompleteCache() { > > return new AutocompleteCacheServiceImpl<IfasvVendor>() { > > }; > > } > > > > public static AutocompleteCacheService<IfasvRequisitionCode> > > buildRequisitionAutocompleteCache() { > > return new AutocompleteCacheServiceImpl<IfasvRequisitionCode>() { > > }; > > } > > > > public static AutocompleteCacheService<Evaluator> > > buildEvaluatorAutocompleteCache() { > > return new AutocompleteCacheServiceImpl<Evaluator>() { > > }; > > } > > > > //Impl > > public class SchedulerServiceImpl implements SchedulerService { > > > > @Inject > > private RemoteUserSync remoteUserSync; > > > > @Inject > > private Session session; > > > > @Inject > > private PeriodicExecutor executor; > > > > @InjectService("userAutocompleteCache") > > private AutocompleteCacheService<ApplicationUser> > userAutocompleteCache; > > > > @InjectService("vendorAutocompleteCache") > > private AutocompleteCacheService<IfasvVendor> > vendorAutocompleteCache; > > > > @InjectService("requisitionAutocompleteCache") > > private AutocompleteCacheService<IfasvRequisitionCode> > > requistionAutocompleteCache; > > > > @InjectService("evaluatorAutocompleteCache") > > private AutocompleteCacheService<Evaluator> > evaluatorAutocompleteCache; > > > > public SchedulerServiceImpl() { > > } > > > > public void init() { > > this.autocompleteCacheUpdate(); > > } > > > > private void autocompleteCacheUpdate() { > > this.executor.addJob(ScheduleUtils.secondlySchedule(1), > > "Autocomplete Cache Updates", > > new Runnable() { > > public void run() { > > memoryUsage(); > > > > > System.out.println("*******************Completed**********************"); > > } > > }); > > } > > > > public void memoryUsage() { > > /* Total amount of free memory available to the JVM */ > > System.out.println("Available memory JVM (bytes): " + > > Runtime.getRuntime().freeMemory()); > > > > } > > > > -- > > View this message in context: > http://tapestry.1045711.n5.nabble.com/Memory-Leak-tp5713668.html > > Sent from the Tapestry - User mailing list archive at Nabble.com. > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [hidden > > email]<http://user/SendEmail.jtp?type=node&node=5713671&i=1> > > For additional commands, e-mail: [hidden > > email]<http://user/SendEmail.jtp?type=node&node=5713671&i=2> > > > > > > -- > Howard M. Lewis Ship > > Creator of Apache Tapestry > > The source for Tapestry training, mentoring and support. Contact me to > learn how I can get you up and productive in Tapestry fast! > > (971) 678-5210 > http://howardlewisship.com > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [hidden > email]<http://user/SendEmail.jtp?type=node&node=5713671&i=3> > For additional commands, e-mail: [hidden > email]<http://user/SendEmail.jtp?type=node&node=5713671&i=4> > > > > ------------------------------ > If you reply to this email, your message will be added to the discussion > below: > http://tapestry.1045711.n5.nabble.com/Memory-Leak-tp5713668p5713671.html > To unsubscribe from Memory Leak, click > here<http://tapestry.1045711.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=5713668&code=Z2NocmlzdG1hbkBjYXJkYWRkeS5jb218NTcxMzY2OHwxNjMyOTYxMjA3> > . > NAML<http://tapestry.1045711.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > -- George Christman www.CarDaddy.com P.O. Box 735 Johnstown, New York -- View this message in context: http://tapestry.1045711.n5.nabble.com/Memory-Leak-tp5713668p5713673.html Sent from the Tapestry - User mailing list archive at Nabble.com.