Рабочее
excubitus — 26.05.2025
Слегка запутинский сербский коллега Д. забрал дочь из колледжа на
летние каникулы, и они всей семьей уехали в отпуск во Флориду.
Следующий семестр его дочурка собирается учиться на копенгагенском
кампусе, совсем далеко от мамки с папкой.Меня Д. попросил разобраться с глючком его измерительной программы, с которой я последний раз имел дело еще до нашествия индусов, и смутно помню, что размер исполняемого файла был тогда около 70 мегабайт. Сейчас он подрос до 135 или около того, а папка проекта весит больше гигабайта, и там реально есть монструозные исходники по десятку мегабайт. Д. в этом коде ориентируется, вплоть до номеров строк. "Ищи это место примерно на 60800-й строке такого-то файла".
Программа при попытке сохранения очень большого массива данных вылетает с ошибкой "Out of Memory".
Я в последние несколько дней до отъезда Д. сделал то, что собирался сделать еще 10 лет назад, но тогда не хватило духу. Написал утилитку, которая перегнала его сотню dbf файлов (dBase, если для кого-то это название еще хоть что-то говорит) в SQLite. С помощью Грока, естественно, самому это было слишком лень. И еще несколько подобных динозавров мигрировал в нечто более-менее поддерживаемое. Поэтому, ожидаемо, в моей версии кода никакого Out of Memory не происходит. Но ее надо много-много тестировать. Взял версию Д., ошибка воспроизвелась, что хорошо. В пятницу догадался, где может быть проблема. Д. любит делать выборки из объединений гигантских таблиц, я и не подозревал, что dBase поддерживает такие размеры. Но всему есть предел. Д, однако, уже уехал, а без него поиск и отладка заняли бы долгое время, решил отложить до следующей недели.
Сегодня ночью приснилось точное место, где это происходит. Вскочил, достал лаптоп, влез в код. Естественно, приснилась чушь какая-то. Но раз уж включил, не выключать же. Повалялся часок с лаптопом, и нашел таки. Исправил. Очень доволен.
Решительно не понимаю, что мне не нравилось в этой работе до нашествия индусов. Ну да, у нас очень много кривого кода. Но ведь это так интересно. И осмысленно. В отличие от. Воистину, купи козу - продай козу.
|
|
</> |
Лицензия Astra Linux Special Edition: что включает и кому нужна
Все совпадения случайны
МОЛИТВЫ - СЛАВЛЕНИЯ
Калининград — Кёнигсберг: мост над временем
50 лет назад. Ноябрь 1975 года.
Отзывы на годовые расклады
Косвенная речь: как передавать чужие слова на английском
50 лет альбому Styx "Equinox"

