> типовая ошибка.Ага, ЩАЗ. Системы разные бывают. Очень разные. У мелочевки например (на которой линуха немеряно) - I/O дорогой еще и по процессору. Съел? :)
> только запись на диск она асинхронна к CPU - может быть запущена
> и по событию будем знать что закончена,
Во первых, если уж мы о относительно больших системах (впрочем это уже и мелочи начинает качаться) - в этом дивном многоядерном мире разные ядра CPU тоже можно считать в каком-то роде асинхронными, если хочется :)
Во вторых, если I/O медленный и грузящий проц - еще вопрос чья возьмет.
> а сжатие - оно зараза всегда синхронно и жрет именно CPU time,
Синхронно с остальным оно только в 1-поточной модели и без жульничеств типа асинхронного ввода-вывода. В современном мире с кучей ядер - синхронность таких вещей относительно чего-то еще - уже совсем не факт. С другой стороны даже если допустить пессимистичный случай, еще вопрос как обычное синхронное I/O в 1-поточной программе закончится быстрее. С сжатием или без. От системы сильно зависит. А покуда I/O не завершен, такая программа все-равно курит бамбук т.к. результат синхронного сискола можно вернуть лишь после его завершения.
> которого и так не хватает..
Опять же. У мелочевки I/O может быть столь дорогим по нагрузке на процессор и тормозным в целом, что сжать и расжать может быть даже более хорошим вариантом чем с таким I/O дело лишний раз иметь. А в случае десктопов и тому подобного - механические диски сравнительно тормозные. Чем меньше они дергаются тем выше профит.