Performance update: Basecamp task sync

January 6th, 2008

Do you want the bad news or good news first?

Wait – you can’t answer that, so I’ll give you the bad news first...I’ve put some of the new features under development on hold for a few weeks. Please don’t approach my office with pitchforks and fire. They’ll get done soon enough.

Good news, the reason they’ve been placed on hold is because I’m focusing all development efforts right now on increasing performance and load times of the application.

Today a new update has been rolled out that addresses the worst offender – Basecamp task sync.

What happened?

I recently installed a new logging system which gives me all sorts of wonderful information about what’s going on inside the application, from most used features to slowest request times.

Imagine my horror when one of the first reports brought this back:

Slowest Request Times:
    ProjectsController#sync_tasks_with_bc took 67.103s
    ProjectsController#sync_tasks_with_bc took 51.191s
    ProjectsController#sync_tasks_with_bc took 43.239s
    ProjectsController#sync_tasks_with_bc took 36.975s
    ProjectsController#sync_tasks_with_bc took 32.433s
    ProjectsController#sync_tasks_with_bc took 30.291s
    ProjectsController#sync_tasks_with_bc took 27.191s
    ProjectsController#sync_tasks_with_bc took 26.441s
    ProjectsController#sync_tasks_with_bc took 24.949s
    ProjectsController#sync_tasks_with_bc took 24.371s

Those are times in seconds. Some of these were taking over a minute to complete – all the while stalling the system for everyone else. Ouch!

Something else I didn’t know – this is the third most used page inside Cashboard. I think you all can see why I needed to move on this one pronto.

What’s changed, and why you should care…

Up front, you now get to see a nifty progress bar telling you exactly what’s going on with your Basecamp sync. It’s animated with a bunch of AJAX and Javascript goodness. Impress your neighbors, amaze your children…ooooh, aaaah.

Basecamp task sync in progress.

Behind the scenes, a lot has changed…we’ve made sure that these requests get fired off in the background, and don’t tie up the system for everyone else.

In plain English, this will speed up the overall system for everyone dramatically.

Expect more announcements about performance improvements shortly.

Sorry, comments are closed for this article.