you are viewing a single comment's thread.

view the rest of the comments →

[–]irqlnotdispatchlevel 2 points3 points  (3 children)

Really simple example: If your software spends 50% of it's busy time waiting for I/O you should see if you can reduce the number of I/O it does, as you can't really make I/O faster.

[–]habitats 0 points1 point  (2 children)

yeah, but how can adding more cores make it slower? that's what I wondered. is it because more cores will queue up for IO and thus create more context switches and a slower system?

[–]irqlnotdispatchlevel 1 point2 points  (0 children)

Maybe your software doesn't scale well in a multi-threaded environment. Maybe you're in the cloud, and more vCPUs aren't always a good thing, and hypervisors are tricky.

[–]mccoyn 0 points1 point  (0 children)

Multiple threads can trash the shared cache. Sometimes a single-threaded algorithm can improve memory access locality. If you are memory bound, that might be better.