Тесты кода других людей будут показывать только разницу между кодами этих людей.
Я предполагаю, что у вас уже есть ряд тестов, которые вы используете для количественной оценки производительности вашей "среды высокой доступности", которая может отображать текущее количество запросов в секунду, которые могут быть выполнены на определенной странице (для веб-сайта). ) или количество вызовов подпрограммы для определенной подпрограммы высокой видимости в важном модуле.
Если у вас еще нет чего-то подобного, я бы предложил создать некоторый код, который бы отслеживал текущую производительность системы в том виде, в каком она есть, особенно для тех битов, которые, по вашему мнению, являются наиболее громкими или для которых ухудшена производительность. будет иметь негативное влияние на компанию.
Имейте также в виду, что большая часть кода может быть связана с вводом-выводом, и регрессия, на которую вы ссылаетесь, может быть незначительной по отношению к ней: она касается назначений списков, поэтому влияет на большинство вызовов подпрограмм и манипулирование параметрами. Если ваш самый ценный код тратит долгое время на ожидание, пока база данных сообщит данные, вышеупомянутая регрессия должна быть незначительной для вас.
Хороший способ выяснить, что для вашего собственного кода - это сравнить его и измерить его текущую производительность.
Как только вы это сделаете и совершенно не будете связаны с конкретными версиями, которые вы хотите перенести, из или в, вы сможете установить любую версию, на которую вы хотите перейти, используя App :: perlbrew, установите модули, необходимые для запуска тестов с App :: cpanm, а затем "просто" запустить свой набор тестов / тестов.
В качестве дополнительного бонуса вы также сможете отслеживать версии Perl для разработчиков и предоставлять ценные отзывы перл-5-портерам для регрессий, которые в этот момент могут быть исправлены до следующего основной выпуск.
Несмотря на то, что perl5-портировщики делают все возможное, чтобы гарантировать, что существующий код не сломается, устаревание выполняется разумно при каждой паре основных выпусков и т. Д. Вещи ломаются и единственный способ узнать, действительно ли они ломаются или не ломаются для вашего собственного кода это проверить его.
Добавлено: для решения конкретного вопроса, касающегося регрессии Perl «падение производительности в назначении списка», вы можете установить различные Perls через perlbrew и сравнить их с:
use Benchmark qw/:all/;
sub test_this {
my ($a,$b,@c) = @_;
1;
}
timethis(10_000_000, "test_this(1..10);");
Сделайте это для Perl 5.10 и Perl 5.10.1 или других perls и посмотрите.
Для моей машины 5.10.1 дает 540 к / с, тогда как 5.10.0 дает 498 к / с.