Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Image not release the memory in a Seaside session #616

Closed
GoogleCodeExporter opened this issue Mar 25, 2015 · 2 comments
Closed

Image not release the memory in a Seaside session #616

GoogleCodeExporter opened this issue Mar 25, 2015 · 2 comments

Comments

@GoogleCodeExporter
Copy link

Hi list,

I have a problem with a Seaside session memory consumption. In my system there 
are a seaside session that should run for a long time (many days or months), 
this session is running a page that have JQuery code. This JQuery reload 
certain parts of the website by 5 seconds intervals.

While time is progress then the vm memory is increase and it never release this 
memory. In two days the memory increase of 40 MB to 530 MB. I investigate the 
problem and found that the callbacks are adding in this code:

store: aCallback
    | key |
    key := self advanceKey.
    callbacks
        at: (aCallback convertKey: key)
        put: aCallback.
    aCallback
        setKey: key
        callbacks: callbacks.
    ^ key

But the old callbacks never are clear, then the GC never collect this objects. 
After a time the image have thousands callbacks that never will be collect.

Anyone knows what can by the solution?

Thanks you very much.
Regards
Andres 

Original issue reported on code.google.com by philippe...@gmail.com on 1 Dec 2010 at 6:55

@GoogleCodeExporter
Copy link
Author

The callbacks cannot really be collected, because Seaside cannot know if the 
callbacks are still used on the current page or not. I suggest that Andres does 
a full page refresh every hour or so, that should solve the problem.

Original comment by renggli on 1 Dec 2010 at 10:54

  • Added labels: ****
  • Removed labels: ****

@GoogleCodeExporter
Copy link
Author

As Lukas said there's nothing we can really do since we have to hold on to the 
callbacks.

What we recommend is that you use passengers and centralized callbacks to avoid 
creating new callbacks.

Check out this video by Johan to explain the technique:

https://www.youtube.com/watch?v=YsA4gNcBKak&list=UUO-vBhaKVZf0al-ISMMPvRw

Original comment by philippe...@gmail.com on 22 Aug 2014 at 10:09

  • Changed state: WontFix
  • Added labels: ****
  • Removed labels: ****

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant