Oleksandr Gavenko -> debian-russian@lists.debian.org @ Tue, 04 Feb 2014 22:12:13 +0200:
>> Впрочем, это рассуждение на пальцах. Если вопрос принципиально важен - >> замерьте, не поленитесь. OG> Как мерить? OG> "strace -f" - посчитать число системных вызовов? OG> Или time? OG> Или gettimeofday? OG> Или http://en.wikipedia.org/wiki/Time_Stamp_Counter? OG> Я работал с оптимизаций криптопримитивов - там использовали TSC, а как OG> работать с более крупными исполняемыми кусками - не представляю... OG> Мне кажется что микосекунд от gettimeofday достаточно для замеров. OG> Как обычно - в цикле выполнить много раз и разницу во времени поделить на OG> число итераций? Для начала - подумать, что измеряем. Если ты работал с оптимизацией, то ты в курсе, что прежде чем оптимизировать, надо сделать профайлинг, и НЕ пытаться оптимизировать ничего, кроме того, что он показывает как узкое место. Сколько раз в секунду вызывается скрипт, про который идет речь? Если меньше 10, то оптимизировать надо время писателя или время читателя (в зависимости от того, одноразовый он или подразумевается его поддерживать), а не время выполнения. Соседнего твоего письма это в той же мере касается. Какая разница, один раз или двадцать оно сканирует десяток простеньких файлов по десять строк максимум в каждом, если после первого же сканирования все они осядут в кэше, а операция производится раз в сутки, и подобных операций в сутки десятка два максимум? Нет, конечно, даже там было что соптимизировать - там повторяющийся код. Но если подумать о том, что тут как раз надо оптимизировать время читателя, то получается, что этот код - оптимальный. Даже без чтения мана на apt-config практически сразу понятно, что он делает. Любая попытка что-то соптимизировать даже просто по объему кода (учитывая возможность copy-paste, даже время писателя уже особо не соптимизируешь) приводит к коду, который читается хуже. Можно было бы ради однопроходности обучить apt-config синтаксису вроде apt-config shell MaxAge=APT::Archives::MaxAge,APT::Periodic::MaxAge Cache=Dir::Cache::archives/d но тут уже читателю придется лезть в ман, чтобы понять, в каком порядке приоритета даны варианты, из какой настройки заполнять переменную - убывания или возрастания. В том коде понятно, это общее место императивного программирования - последний приоритетнее. Но вот положа руку на сердце - который из вариантов читается легче? Мне кажется, тот, где несколько проходов по конфигам. -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/87fvnysi45....@wizzle.ran.pp.ru