Skip to main content
Solved

optimizing memory usage

  • October 14, 2014
  • 1 reply
  • 20 views

Hi,

 

I have a large amout of data in csv files 4 mil in each. Always gets memory problem when reading the data. The rest of the process is fine. I use a 64 bit fme on a powerful machine and the memory is only on 60%. Any suggestions?

 

 

Henrik Rinne

Best answer by david_r

Hi,

 

 

difficult to tell without knowing your workspace in detail, but some general tips are:

 

  • Remove as many attributes as possible, as early as possible in your workflow (AttributeKeeper is your friend)
  • Beware of large lists that are kept "indefinitely" (AttributeRemover is your friend)
  • Don't store geometries in an attribute, e.g. GeometryExtractor
  • Beware of blocking transformers, e.g. FeatureMergers, they fill up memory quickly
If you rely on a lot of FeatureMergers and the like, consider staging your processing by first loading everything into a proper database (SQLite or PostgreSQL are good and free alternatives) and then do joins on the database side using e.g. a SQLCreator rather than a csv reader. With proper indexing it is usually a lot faster and much more memory efficient.

 

 

David
View original
Did this help you find an answer to your question?
This post is closed to further activity.
It may be a question with a best answer, an implemented idea, or just a post needing no comment.
If you have a follow-up or related question, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

1 reply

david_r
Evangelist
  • Best Answer
  • October 14, 2014
Hi,

 

 

difficult to tell without knowing your workspace in detail, but some general tips are:

 

  • Remove as many attributes as possible, as early as possible in your workflow (AttributeKeeper is your friend)
  • Beware of large lists that are kept "indefinitely" (AttributeRemover is your friend)
  • Don't store geometries in an attribute, e.g. GeometryExtractor
  • Beware of blocking transformers, e.g. FeatureMergers, they fill up memory quickly
If you rely on a lot of FeatureMergers and the like, consider staging your processing by first loading everything into a proper database (SQLite or PostgreSQL are good and free alternatives) and then do joins on the database side using e.g. a SQLCreator rather than a csv reader. With proper indexing it is usually a lot faster and much more memory efficient.

 

 

David

Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings