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.

Reply via email to