Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I've had many laptops over the course of many years, and while many things have sped up, one thing remains as slow today as it was years ago: (dis)connecting an external display. What's taking it so long to detect the new display and update the pixel buffers? I use Macs primarily, but I think this is equally slow on other platforms.

share|improve this question

migrated from stackoverflow.com May 19 '10 at 18:00

This question came from our site for professional and enthusiast programmers.

1  
Perhaps not exactly programming related, but nice question :-) –  Moron May 19 '10 at 17:52
    
Doesn't sound like a programming question? Might be better asked on the sister site superuser.com or serverfault.com. –  Eric J. May 19 '10 at 17:52
1  
I've never noticed it to be slow on DOS/Windows/Linux platforms. Maybe it's just a Mac thing? I don't think I've ever done an external display on a Mac laptop. –  Brian Knoblauch May 19 '10 at 18:13
    
Certainly an interesting question. I agree that it should take way less than a second but it really takes about a second or so. It is notably faster on Windows, though. –  bastibe May 30 '10 at 21:44
add comment

2 Answers

I certainly don't know the answer, but I'm reminded of something I read in Owen Taylor's Boot Poster Challenge:

... the natural latency of external systems - the time it takes a monitor to respond to a DDC probe ...

DDC seems to be an I2C-based system, so 100kbps on the wire, but also whatever MCU/EEPROM they've got on the other end of it. Plus maybe the graphics card doesn't even assume there's a DDC bus there to be probed, so it does some hardware probing first to make sure it looks sane before trying to chat.

Beyond that, I can guess...

It could also be a social/economic reason: nobody ever tests or advertises start-up time for displays. I doubt there are many display engineers sitting around saying "we should make the DDC probe (or whatever the bottleneck is) faster!". Since no tech reviewer ever mentions it, and no review site lists it, it's not big bang for their buck.

And the prime use case for displays might not even be plugging in laptops. If they think it's turning on your PC at the start of the day (I don't know if it's true or not, but if they think it is), then the time it takes to get to a useful screen is going to be dominated by the OS booting, the backlight getting up to brightness, etc.

Finally, software in embedded systems tends to be really awful. Have you tried using the on-screen display on an LCD recently? That's the same system. :-)

Of course, for unplugging the display, I have no idea. You think it'd be faster, but it really isn't. Maybe they do a whole "probe all displays when anything changes", though I don't know why that should be necessary.

share|improve this answer
add comment

That's a great question.

Obviously, this is OS dependent.

Much of the time goes to recalculating the sizes and locations of all the windows, and then repainting them, which triggers a whole chain of repaints down to their smaller components. Fonts and other things may need to be reloaded or rescaled as well.

share|improve this answer
    
Repainting is certainly not the problem here. Repainting all windows happens all the time and is not time consuming at all. For example, closing a maximized window on Win XP (no desktop compositing) will redraw all windows and it happens in a snap. –  bastibe May 30 '10 at 21:43
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.