Как определить узкое место при выполнении юнит-тестов?
У меня очень большое решение с 11K+ модульными тестами, и на моем рабочем столе их запуск занимает около 30 минут; на моем ноутбуке это занимает 60 минут.
ПРИМЕЧАНИЕ. Я уже сменил жесткий диск на SSD, и он не увеличил его.
Различия в машинах
процессор
- Рабочий стол: Intel Xeon W3550 @ 3,07 ГГц (8 ядер)
- Ноутбук: AMD A10-5745M APU с Radeon HD Graphics (4 ядра)
баран
- Рабочий стол: 6 ГБ
- Ноутбук: 6 ГБ (с возможностью обновления до 16 ГБ)
ПРИМЕЧАНИЕ: я не уверен, как определить больше спецификаций в оперативной памяти, поэтому руководство приветствуется, если это необходимо.
Вопрос
Хорошо, так вооружившись этой информацией, при запуске моих модульных тестов, как я могу определить, является ли узкое место ОЗУ или процессор? Как указано выше, оперативная память может быть обновлена, и я считаю, что процессор немного, но незначительно.
1 ответ
Я думаю, что хороший способ ответить на ваш вопрос - использовать метод KISS: Keep It Super Simple.
Поскольку вы сравниваете 2 компьютера, всегда будут существовать мелочи (скорость ОЗУ, частота FSB, возраст оборудования, фоновые процессы, фрагментация жесткого диска, производитель материнской платы), которые будут влиять на скорость решения. В большинстве случаев эти мелочи будут приводить к изменению конечного результата только на 0,1- 5% (что делает его незначительным).
Оставляя мелочи в стороне, давайте сравним две аппаратные характеристики, которые вы перечислили:
Что касается памяти, то и настольный компьютер, и ноутбук имеют одинаковый объем оперативной памяти (6 ГБ). Если бы вы поместили больше памяти в ноутбук, я уверен, вы бы немного сократили время завершения решения. Увеличение объема оперативной памяти даст ОС немного больше пространства для хранения необходимой информации и информации, которую вы используете в своем решении. В зависимости от используемого вами программного обеспечения и типа используемого решения, вы можете увидеть увеличение от 5% до 200%. Но так как вы не предоставили эту информацию, я не могу сказать наверняка.
Но поскольку оба компьютера имеют одинаковый объем памяти, программа, запущенная на 1 компьютере, не сможет получить преимущество, используя больше памяти, чем другой компьютер. По этой причине память не является проблемой здесь и является спорным вопросом.
Что касается процессора, то в этом отношении два компьютера сильно различаются. Настольный компьютер оснащен 8-ядерным процессором Intel Xeon, а ноутбук оснащен 4-ядерным процессором AMD. Что касается скорости каждого процессора, то Intel имеет тактовую частоту 3,06 ГГц, а AMD - 2,9 ГГц. Хотя это не даст настольному компьютеру огромного преимущества, оно даст ему небольшое преимущество.
Важным моментом здесь является тот факт, что процессор Intel имеет 8 ядер, а AMD - только 4. Благодаря этому Intel может обрабатывать в 2 раза больше информации за то же время, что и AMD. Это делает процессор Intel в 2 раза быстрее, чем AMD. По этой же причине процессор Intel выполнил задачу в 2 раза быстрее, чем процессор AMD.
В заключение, я бы сказал, что процессор AMD в ноутбуке - это основная проблема, которую вы ищете. Когда вы сравниваете две вещи, помните, что одинаковые части можно вычеркнуть из уравнения, чтобы вы могли сосредоточиться только на разных вещах.
PS Хотя память и процессор на настольном компьютере почти всегда можно обновить, обновляется только память на ноутбуке. 95% процессоров ноутбуков не могут быть обновлены.