Хороший вопрос.Аппаратные средства, безусловно, имеют значение, но структурные различия программного обеспечения тоже имеют значение.
Маловероятно, что оптимизации на микроуровне, такие как развертывание, будут иметь большое значение.
Рассуждения об этом не зайдут слишком далеко -вам нужно расследовать.
Я не говорю, что вы можете получить окончательный ответ на этот вопрос, но вот что я сделаю. Каким-то образом получить 10 или 20 выборок стека случайного времени , либо с помощью прерывания и дампа, pstack , lsstack , либо с помощью отладчика и использованием Ctrl-C
, или хороший профилировщик выборки из стека, например RotateRight / Zoom.
Вы можете посмотреть на эти примеры и получить представление, в процентном отношении, как каждая программа тратит свое время.Если они оба близки к оптимальным, изображения должны выглядеть примерно одинаково, даже если вы точно не знаете, что они делают.Если кто-то, скажем, тратит больший процент времени на управление памятью, это красный флаг.Если стек вызовов, как правило, намного глубже с одной стороны, чем с другой, это также вызывает подозрение не потому, что вызовы дорогие, а потому, что чрезмерно расточительный стиль кодирования имеет тенденцию показывать это.
Если вы неУ него нет символов, может потребоваться значительное количество детективной работы, чтобы понять это, и вы, возможно, не сможете, но я бы так к этому подошел.