[Backgroundrb-devel] Performance problems running Prawn under BackgrounDRb

hemant gethemant at gmail.com
Wed Oct 29 01:39:07 EDT 2008

On Wed, Oct 29, 2008 at 3:03 AM, Aaron Turner <synfinatic at gmail.com> wrote:
> On Mon, Oct 27, 2008 at 8:04 PM, hemant <gethemant at gmail.com> wrote:
>> On Mon, Oct 27, 2008 at 10:49 AM, Aaron Turner <synfinatic at gmail.com> wrote:
>>> I have a RoR application which I'm using Prawn via BackgrounDRb to
>>> generate PDF's.  I've determined there seems to be a 5-6x performance
>>> hit compared to running Prawn directly as a script from the command
>>> line (~12sec to 60+sec) on my OS X system.
>>> Anyone have any suggestions on how to improve performance?
>> Hi Aaron,
>> 1. How are you benchmarking this?
>> 2. Are you using thread pool?
>> 3. If you do not need large thread pool, you can reduce size using
>> "thread_pool 1", which will give some boost in performance because
>> having 20 threads active inside interpretor is a performance penalty.
> I tried the thread_pool thing, it helped a little, but backgroundrb is
> still multiple times slower then running the same code from a ruby
> script.  Anyways, I created a standalone rails app which showcases
> this problem:
> http://synfin.net/code/prawn_demo.tar.gz

Hey there,

two things:

1. I see you are passing a lot of data around (the whole YAML dump).
Can you not just pass some id or some other key, which can be used to
read the data in worker and populate the object? That will speed up
things by fair margin.

2. That update() hack is ugly. You got to use cache object of bdrb,
make sure you are using memcache backend there.


Thats for now. I will get back, once I get to see things more closely.

More information about the Backgroundrb-devel mailing list