Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm not sure I'd call this "bound" at all, though I like the siblings "dependency bound". To me this would be "blocked". "Bound" means I'm doing something productive, and I'm "bound" on whatever is limiting my speed. If I'm waiting on an external API outside my control, I'm not "bound" I'm "blocked" (stuck sitting around doing nothing, making no progress until they deign to get back to me).


This is a nice and more technically accurate definition but i don’t believe it’s at all found in the wild, which mitigates its usefulness. I think the bound in the common usage is in the sense of destination rather than limit, ie, bound for an i/o subsystem whether under local control or not. This then implies the local actor entering the ‘blocked’ state that you mention, during which time the local actor is free in principle to do something else.

In short I think I/O bound is a concise way of saying that this work will leave my concern and will pass back into it at some later time.


IO and CPU bound are meant in the sense of upper and lower bound, not destination, but limits on the system.

Saying something is CPU bound means that the CPU is the bottleneck. For instance, the data IO doesn’t limit the system throughout of iteratively running a hash algorithm a million times, the CPU does. An IO bound process might be something like reading a lot of data off a disk (or over a network) with a small, quick transformation on the CPU. Where you saturate the data bus, but the CPU is comparatively idle.


Ok hmm, thank you for the correction.


Isn't a "bottleneck" the traditional term for this?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: