XLL Plus to the rescue

I had some major performance issues recently on one project.

I’ve worked with loads of xll related tools and they all have their strengths and weaknesses. And I think they all do something that none of the others do. And having worked with the raw API (I also built my own xll generator) I love any tool that hides any of that Excel4 hell hole.

Anyway we had a UDF lock up issue, with a slow calculating function, so the usual solution is to move to asynchronous.

To convert a slow single threaded locking synchronous function to asynchronous multi-threaded joy using XLL+ is just a couple of clicks. And it requires zero understanding of the plumbing underneath.

Of course before you fire off a few thousand calls per millisecond to your server infrastructure, its probably worth checking it can cope…;-) (although it seems if you don’t check, someone will let you know as soon as they have checked the logs to find out why it crashed) (Tip: always test under someone elses login)

ExcelDNA also does async, but I would have needed to code up my own RTD server, not hard, but not a fast as clickety click on the XLL+ function wizard.

At the Excel dev conf recently I demonstrated creating an RTD function in Add-in Express which is very simple too.

So asynchronousness is covered by many of the tools, and it is integral in Excel 2010 (although I have not had chance to investigate just how ‘integral’).

We had another issue too, also solved with a couple of clicks of XLL+, that I have not seen addressed in any of the other xll tools. Namely: when you have volatile arguments to an RTD server you get in a race condition because the RTD update triggers a recalc which updates the volatile function which triggers the RTD function, which.. guess what? triggers another calc when it returns. I’ll write more about this in a future post, but just to say if you are struggling to resolve this take a look at xll+.

Anyone else messing with asychronicity?



Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: