IO bound и CPU bound



Эти два понятия принято разделять, потому что операции с CPU значительно быстрее операций input/output. Намного проще заставить CPU выполнять операции быстрее, чем снабжать его данными. Важно правильно сбалансировать CPU- и IO-операции в вашей программе, чтобы избежать неоптимальной работы кода. Это не значит, что вы должны избегать файлов на HDD (или SSD) или сетевых ресурсов для CPU-вычислений; важно лишь знать, что это может влиять на производительность и учитывать это при проектировании программы.

IO Bound(input/output) — это операции взаимодействия с «внешним миром». С точки зрения нашей программы, это всё, что угодно, кроме процессора и оперативной памяти. Любые сетевые запросы или чтение файлов с операционной системы — это IO Bound. Эти операции отлично подходят для обработки асинхронным способом.

CPU Bound — скорость подобных операций зависит от частоты вашего процессора и оперативной памяти. К таким операциям можно отнести математические вычисления (например, умножение больших матриц) и работу с изображениями (например, перерисовка пикселей). CPU Bound операции имеют привязку к оперативной памяти для быстрого снабжения процессора данными. Если ваша оперативная память работает с более низкой частотой, чем процессор, это является «узким горлышком».



Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: