Re:Ruby's rmagick Gem looking for a maintainer
by philjackson on Wednesday January 19, 2011 @04:59AM
(#2119313)
I've never really liked the term "maintainer" sort of implies to me that the role is going to be monotonous patching, fire fighting and bug fixing rather than that and influencing the product's direction with the design and implementation of new features. I think "lead developer" would be a better phrase.
Re:Ruby's rmagick Gem looking for a maintainer
by technomancy on Wednesday January 19, 2011 @12:34PM
(#2120538)
Lead developer implies a lot more work. I'm sure they'd be happy to get a lead developer, but at minimum they need someone to just let the patches flow, dig through bug reports, and put out releases at the right time.
Re:Ruby's rmagick Gem looking for a maintainer
by pilif on Wednesday January 19, 2011 @07:27AM
(#2119557)
IMHO, there's a huge difference between calling a C library directly and shelling out to an external process.
mini_magick uses Subexec which in turn causes a fork and exec and might, depending on how ruby's backtick operator work, also start a shell which in turn does another exec for the specific ImageMagick binary.
The process startup time alone is a significant overhead and so is the additional memory usage.
In the old days, when I was maintaining a mail server for a free web mail service, I remember the lengths I went through to prevent my MTA from forking for mail delivery due to the huge cost of launching another process.
Re:Ruby's rmagick Gem looking for a maintainer
by towelrod on Wednesday January 19, 2011 @10:06AM
(#2119904)
I use RMagick for a rails based image repository, and I have to shell out to run the RMagick code because of memory problems. When I used to keep it all in the rails process, those guys would get up to the 2-3G range over the course of a couple of days.
I'll have to check out minimagick, it might be cleaner than what I am doing now.
Re:Ruby's rmagick Gem looking for a maintainer
by towelrod on Friday January 21, 2011 @06:09AM
(#2127071)
In this particular application, I have to inspect PDF and TIFF files that might have hundreds of pages or frames. These files can be over 100MB easily. Running those through RMagick makes the process blow up to enormous sizes. Even if the memory gets garbage collected, Solaris doesn't really release it.
Re:Ruby's rmagick Gem looking for a maintainer
by sohooo on Wednesday January 19, 2011 @08:40AM
(#2119678)
Well, the mini_magick documentation mentions that the spawn of a subprocess is the main point of that library:
"Using MiniMagick the ruby processes memory remains small (it spawns ImageMagick’s command line program mogrify which takes up some memory as well, but is much smaller compared to RMagick)"
Re:Ruby's rmagick Gem looking for a maintainer
by pilif on Wednesday January 19, 2011 @05:10AM
(#2119332)
What kind of an attitude is this? If you care so much about the memory leaks, fix them yourself. It's open source after all.
Requesting bugs fixed this way is bad in a normal situation, but doing so as an answer to a call for help to keep the project moving forward is disgraceful.
Re:Ruby's rmagick Gem looking for a maintainer
by mmcdan on Wednesday January 19, 2011 @11:35AM
(#2120298)
Successful use of rmagick also requires that you explicitly call the ".destroy!" method on all images(including intermediary ones) to ensure that memory is freed up. Looking at Ruby's Object space shows that this method successfully marks the images for deletion. This eliminated the memory leaks for me. You may have to also call GC.start after ".destroy!" if you want the objects cleaned up as quickly as possible.
mini_magick uses Subexec which in turn causes a fork and exec and might, depending on how ruby's backtick operator work, also start a shell which in turn does another exec for the specific ImageMagick binary.
The process startup time alone is a significant overhead and so is the additional memory usage.
In the old days, when I was maintaining a mail server for a free web mail service, I remember the lengths I went through to prevent my MTA from forking for mail delivery due to the huge cost of launching another process.
I'll have to check out minimagick, it might be cleaner than what I am doing now.
Its just safer to keep it in a different process.
"Using MiniMagick the ruby processes memory remains small (it spawns ImageMagick’s command line program mogrify which takes up some memory as well, but is much smaller compared to RMagick)"
Forking isn't always bad. See http://tomayko.com/writings/unicorn-is-unix
Requesting bugs fixed this way is bad in a normal situation, but doing so as an answer to a call for help to keep the project moving forward is disgraceful.
See: http://rubyforge.org/forum/forum.php?thread_id=1374&foru...