Дмитрий Радищев (dibr) wrote,
Дмитрий Радищев
dibr

Category:

чего ждут программы?

Прочитал на одном известном ресурсе "задолбашку", мол бесит когда программы тормозят на простых действиях, и дальше стандартные слова про миллиарды операций в секунду, и "куда их в принципе можно потратить". Меня тормозящие программы, конечно, не радуют, но куда можно без толку "ухнуть" миллиарды операций я представить могу - это результат "наслоения абстракций": когда несколько десятилетий программисты каждые пару лет писали "новый слой абстракций поверх предыдущего", как-то так и получается.

Не могу понять я другой иногда встречающейся ситуации.
Вот программа, и она тормозит - уже довольно долго делает что-то, не требующее вмешательства пользователя. При этом значительную часть времени процессор не загружен (ни даже на четверть ядра, я понимаю что большинство программ до сих пор однопоточные и более одного ядра загрузить не могут), дисковой активности нет или её мало, сетевой активности не предполагается... но _что же она тогда делает_?
Ведь программа может либо "работать" (выполнять код), загружая при этом процессор, либо "ждать" внешнего события (ввода-вывода, освобождения ресурса). Пользователя она не ждёт, дискового ввода-вывода нет, сетевого тоже, если предположить что она ждёт какой-то ресурс - то в этот момент должен работать (занимать процессор или i/o) текущий владелец ресурса... но чего-то же она ждёт. Чего???
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 20 comments