Я считаю, что "просмотр кода" - хорошее начало. Если один использует больше переменных и сложнее другого, он, вероятно, работает медленнее.
Тем не менее, есть, конечно, хитрые приемы, которые могут заставить более сложную функцию работать быстрее (например, код, который считывает 8 байт за раз, но, конечно, как только вы обнаружите разницу, код становится более сложным — для длинных строк, которые во многом похожи, но это большой выигрыш»).
Итак, в конце концов, ничто не заменит фактическое выполнение кода с использованием синхронизации тактового цикла (например, инструкция RDTSC на процессорах x86) или запуск большого цикла для многократного выполнения кода, чтобы обеспечить разумную продолжительность времени выполнения.
Если ваш код не должен работать на одной встроенной цели, вы, вероятно, захотите запустить код на наборе различных аппаратных средств, чтобы определить, является ли код, который быстрее на процессоре A, также быстрее на процессорах типа B, C и D. . Часто это работает, но иногда вы можете обнаружить, что одна модель процессора быстрее для НЕКОТОРЫХ операций, а другая быстрее для другой (например, на основе размера кеша и т. д.).
Также было бы очень важно, в случае операций со строками, попробовать с входными данными разного размера, разными точками различия (например, длинная строка, но другая «ранняя» по сравнению с длинной строкой с разницей «поздняя»). Иногда разные подходы будут показывать разные результаты для коротких/длинных строк или ранней/поздней точки различия (и, конечно, «равных» строк, длинных или коротких).
person
Mats Petersson
schedule
09.04.2013