A: 

Profiler doesn't consider asynchronous HTTPService call times because there isn't any code running during that time. The runtime is just waiting for the HTTP response.

Use a HTTP tracer plugin like Fiddler or HTTPWatch to measure time taken by HTTP calls. Then the times should add up.

Chetan Sastry
Sorry, I guess I wasn't clear: the time is spent processing the data my Flex application receives from the HTTP service – not waiting for the service to send data back.
David Wolever
+1  A: 

Alright, problem solved.

It turns out that setting an mx:Label's text field requires Ω(n²) time (where 'n' is the length of the string). There are some optimizations which make it faster for "sufficiently short" strings, but given a string which is "sufficiently long", you get to do all that wonderful work.

Needless to say, my strings were "sufficiently long".

Sweet.

David Wolever