времени). Я потратил 40 ч на замену 30 строк на Бейсике ПО строками на Бейсике и 30 строками на ассемблере, что сократило время выполнения фазы 1с 14ч до 2ч 20мин. Это было достаточно хорошо для данной конкретной системы, но дольше, чем могло быть, если бы я выполнил быстрые расчеты заблаговременно и выбрал бы для реализации более эффективный язык.
6.5. ОСНОВНЫЕ ПРИНЦИПЫ
Используя оценки, непременно вспоминайте известный совет Эйнштейна.
Все должно быть сделано настолько просто, насколько это возможно, но не проще.
Мы знаем, что простые вычисления перестают быть чересчур простыми, когда мы вводим "запас прочности", чтобы компенсировать наши ошибки в оценке параметров и наше незнание рассматриваемой задачи.
6.6. ЗАДАЧИ
1. При каких расстояниях курьер на велосипеде, везущий магнитную ленту, будет более быстрым переносчиком информации, чем телефонная линия со скоростью передачи 56 000 бит/с?
2. Сколько времени вам потребовалось бы для заполнения диска, если бы вы вводили символы с клавиатуры?
3. В каких случаях эффективно с точки зрения затрат устанавливать терминал у программистов дома?
4. Предположим, что все процессы в мире замедлились в 1 млн раз. Сколько времени потребуется вашему компьютеру для выполнения команды? Диску, чтобы совершить один оборот? Устройству перемещения магнитных головок для поиска по всему диску? Вам, чтобы ввести с клавиатуры свое имя?
5. В каком случае будет выполнен наибольший объем работы: за 1 с на суперкомпьютере, за 1 мин на мидикомпьтере, за 1 ч на микрокомпьютере или за I день с использованием языка Бейсик на персональном компьютере?
6. Предположим, что система выполняет 100 обращений к диску при обработке запроса (хотя некоторым системам необходимо меньшее количество, в других требуется несколько сотен обращений к диску для обработки запроса). Сколько запросов в час может выполнить система?
7. Чтобы ускорить выполнение программы на 10 %, программист затратил календарный день и 1 ч процессорного времени на ЭВМ со стои-
S5