Байки из склепа
May. 3rd, 2025 05:47 pmНавеяно обсуждением компьютерных древностей.
(Интересно только программистам и сочувствующим.)
Когда регистры были большими
Много лет назад, на первой моей работе, один из ветеранов рассказал мне такую историю. Во времена его молодости они работали на какой-то машине где было долго и муторно вносить программу и отлаживать её. Они пытались отловить то место из-за которого машина зависала. Подозревали что где-то сидит бесконечный цикл. Так один умелец принёс динамик от радио и припаял к регистру где обычно хранился счётчик. Регистры тогда были видны невооружённым глазом. Когда шло обращение к этому регистру, то динамик трещал. Таким образом можно было отловить нехарактерное использование.
Когда диски были медленными
Тоже много лет назад, и тоже один из ветеранов рассказал как портировал некую древнюю программу на более современную технику. Всё было хорошо, но некоторые куски вызывали вопросы. Эти куски выглядели загадочно и было совершенно непонятно что же программа делает в этих местах. (Программа была написана на ассемблере.) После долгих поисков и расспросов, наконец один старец предположил, что наверное эти куски вставлены для работы с диском. После проверки так и оказалось. Древние авторы знали сколько тактов занимает выполнение каждой инструкции и подобрали эти инструкции так, чтобы процессор был занят ровно нужное количество времени. А после этого шло обращение к диску. Скорость вращения диска тоже была известна. Таким образом, когда надо было читать или писать данные, то головка диска была в нужном месте без дополнительных движений. Это давало ощутимый прирост производительности.
Когда Visual Basic был царём горы
Добавлю третью байку для ровного счёта, хотя она и не такая впечатляющая. На заре своей карьеры мне надо было починить баг в программе написанной на Visual Basic. Люди жаловались что работает медленно и часто подвисает. Гуру говорили что Visual Basic это отстой, ничего удивительного что тормозит. Надо всё переписать на C, а ещё лучше на ассемблере. Увы, такого выбора у меня не было, поэтому пришлось чинить баг в том что есть. Оказалось, что в процедуре отрисовки (которая может вызываться много раз в секунду) автор вставил подключение к базе данных, запрос на данные, фильтровку данных (в коде) и заполнение интерфейса полученной информацией.
(Интересно только программистам и сочувствующим.)
Когда регистры были большими
Много лет назад, на первой моей работе, один из ветеранов рассказал мне такую историю. Во времена его молодости они работали на какой-то машине где было долго и муторно вносить программу и отлаживать её. Они пытались отловить то место из-за которого машина зависала. Подозревали что где-то сидит бесконечный цикл. Так один умелец принёс динамик от радио и припаял к регистру где обычно хранился счётчик. Регистры тогда были видны невооружённым глазом. Когда шло обращение к этому регистру, то динамик трещал. Таким образом можно было отловить нехарактерное использование.
Когда диски были медленными
Тоже много лет назад, и тоже один из ветеранов рассказал как портировал некую древнюю программу на более современную технику. Всё было хорошо, но некоторые куски вызывали вопросы. Эти куски выглядели загадочно и было совершенно непонятно что же программа делает в этих местах. (Программа была написана на ассемблере.) После долгих поисков и расспросов, наконец один старец предположил, что наверное эти куски вставлены для работы с диском. После проверки так и оказалось. Древние авторы знали сколько тактов занимает выполнение каждой инструкции и подобрали эти инструкции так, чтобы процессор был занят ровно нужное количество времени. А после этого шло обращение к диску. Скорость вращения диска тоже была известна. Таким образом, когда надо было читать или писать данные, то головка диска была в нужном месте без дополнительных движений. Это давало ощутимый прирост производительности.
Когда Visual Basic был царём горы
Добавлю третью байку для ровного счёта, хотя она и не такая впечатляющая. На заре своей карьеры мне надо было починить баг в программе написанной на Visual Basic. Люди жаловались что работает медленно и часто подвисает. Гуру говорили что Visual Basic это отстой, ничего удивительного что тормозит. Надо всё переписать на C, а ещё лучше на ассемблере. Увы, такого выбора у меня не было, поэтому пришлось чинить баг в том что есть. Оказалось, что в процедуре отрисовки (которая может вызываться много раз в секунду) автор вставил подключение к базе данных, запрос на данные, фильтровку данных (в коде) и заполнение интерфейса полученной информацией.
no subject
Date: 2025-05-03 05:44 pm (UTC)no subject
Date: 2025-05-04 12:38 am (UTC)Скачивание через дайал-ап было процессом не для слабонервных, да. Ставишь на ночь и молишься всем богам, чтобы не прервалось и не застряло на 97%.
Потом быстро появились всякие скачивалки. А также мир кустарных ftp серверов был одной из первых социальных сетей в прямом смысле. :)