Старо. Просто это перевод со статистикой:
Результаты 1 — 10 из примерно 765 000 для медведев виноват. (0,06 секунд)
Результаты 1 — 10 из примерно 375 000 для обама виноват. (0,12 секунд)
Добавляем в первую строчку точку в конце и все становится нормально.
Ну живой контакт это не отменяет, но в силу того, что люди сейчас поглощают информации за одно и то же время несравнимо больше, чем раньше, то и средства для этого должны быть соответствующие.
Я уже почти сплю, поэтому до конца не буду сейчас расписывать, но предлагаю такую реализацию:
1) создаем процедуру, которая будет выполнять код с колбэком(первый параметр-код, второй-функция колбэка):
sub progresseval{eval(addcounter(shift,shift));}
2) callback будет процедурой, которая будет получать параметрами текущее значение счетчика и его максимум, например:
sub callback{print shift*100/shift.'%';}
3) самая сложная часть — анализатор кода, считающий что-то вроде общего «веса» кода(типа cost при explain'e SQL кода) и его частей, и вставляющий счетчики между частями. Ее я до конца не продумал, но предполагаю, что нужно сделать анализ всех циклов. Основная проблема будет со всякими вызовами функций которые вне данного кода.
Результаты 1 — 10 из примерно 765 000 для медведев виноват. (0,06 секунд)
Результаты 1 — 10 из примерно 375 000 для обама виноват. (0,12 секунд)
Добавляем в первую строчку точку в конце и все становится нормально.
Какой-то сомнительный плюс, вот если бы на наших машинах японцы катались…
1) создаем процедуру, которая будет выполнять код с колбэком(первый параметр-код, второй-функция колбэка):
2) callback будет процедурой, которая будет получать параметрами текущее значение счетчика и его максимум, например:
3) самая сложная часть — анализатор кода, считающий что-то вроде общего «веса» кода(типа cost при explain'e SQL кода) и его частей, и вставляющий счетчики между частями. Ее я до конца не продумал, но предполагаю, что нужно сделать анализ всех циклов. Основная проблема будет со всякими вызовами функций которые вне данного кода.