О том, как это бывает
Dec. 25th, 2009 05:54 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Нет, я просто не могу этим не поделиться!
С неделю назад довёл свою волшебную программу для диплома до очередной кондиции и, медитируя, наблюдал, как она из последних сил за 13 секунд считает проход пятидесяти тысяч лучей через невинную сферу, а потом ещё где-то столько же считает пути отражённых лучей. "Ну, 50 000 лучей — это очень и очень много", — думал я.
Сегодня я сел и понял, что мне надо будет повторить операцию расчёта около двух с половиной тысяч раз, и те десять часов, которые мне прогнозирует арифметика, меня никак не устраивают в качестве срока получения ответа. Запускаю профайлер(это место моего поста, разумеется, специально оплачено проектом NetBeans.org), смотрю на производительность. Несказанно удивляюсь количеству всяких логирующих вызовов, актуальных на этапе ранней отладки, но совершенно ненужных сейчас. Убираю всё это. Вздохнув, нарушаю инкапсуляцию в критическом для производительности месте — массив, принадлежащий объекту-вектору физического пространства, делаю публичным полем.
В общем, результат таков — 3 секунды на проход основного пучка и 2 — на проход отражённого. 5 секунд вместо 30.
Где-то там был смайлик с большими-большими глазами.
PS: Зато 5с — это вовсе не пафосно. То ли дело — 30!
С неделю назад довёл свою волшебную программу для диплома до очередной кондиции и, медитируя, наблюдал, как она из последних сил за 13 секунд считает проход пятидесяти тысяч лучей через невинную сферу, а потом ещё где-то столько же считает пути отражённых лучей. "Ну, 50 000 лучей — это очень и очень много", — думал я.
Сегодня я сел и понял, что мне надо будет повторить операцию расчёта около двух с половиной тысяч раз, и те десять часов, которые мне прогнозирует арифметика, меня никак не устраивают в качестве срока получения ответа. Запускаю профайлер(это место моего поста, разумеется, специально оплачено проектом NetBeans.org), смотрю на производительность. Несказанно удивляюсь количеству всяких логирующих вызовов, актуальных на этапе ранней отладки, но совершенно ненужных сейчас. Убираю всё это. Вздохнув, нарушаю инкапсуляцию в критическом для производительности месте — массив, принадлежащий объекту-вектору физического пространства, делаю публичным полем.
В общем, результат таков — 3 секунды на проход основного пучка и 2 — на проход отражённого. 5 секунд вместо 30.
Где-то там был смайлик с большими-большими глазами.
PS: Зато 5с — это вовсе не пафосно. То ли дело — 30!
no subject
Date: 2009-12-26 10:34 pm (UTC)Но очень рада тебе тут =))))
no subject
Date: 2009-12-27 01:37 pm (UTC)no subject
Date: 2009-12-27 02:56 pm (UTC)no subject
Date: 2009-12-27 05:44 pm (UTC)Тут вопрос - шашечки или ехать: впечатление производить или задачу решать быстро.
no subject
Date: 2009-12-27 05:57 pm (UTC)