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

skipblank memory usage and main loop blocking #27

Closed
springmeyer opened this issue Mar 3, 2012 · 2 comments
Closed

skipblank memory usage and main loop blocking #27

springmeyer opened this issue Mar 3, 2012 · 2 comments

Comments

@springmeyer
Copy link
Contributor

I'm starting to be more convinced that the skipblank branch uses memory too aggressively. Partially related, it also blocks the main loop, leading to the eio threadpool being underutilized.

E.g. I am unable to detect any memory leaks at the v8/node/mapnik level (e.g. or deeper problems). Even if v8 garbage collection is forced during skipping (using while (!mapnik.gc()) {} it is still very easy to run out of memory when many tiles are being skipped.

This is a ticket to discuss possible ways to work around this.

Ideas:

  1. move parts of code to c++ (threadpool)

  2. move existing c++ calls to async (isSolid, getPixel, others ??)

  3. more agressive use of process.nextTick (to help reduce blocking)

  4. use child process nodes to handle key tasks

@kkaefer
Copy link
Contributor

kkaefer commented Mar 4, 2012

Can you try the schemes branch with bin/copy --scheme=pyramid? It uses a different skipping mechanism. I'd be interested in whether the main loop blocking occurs here as well.

@springmeyer
Copy link
Contributor Author

closing, this is working awesomely now.

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

No branches or pull requests

2 participants