Я написал проект, который использует некоторые основные функции в openssl
, такие как RAND_bytes
и des_ecb_encrypt
.Сравнение производительности Hyper-threading
Мой компьютер имеет i7-2600 (4 ядра и 8 логических процессоров). Когда я запускаю проект с 4 потоками, он будет стоить 10 секунд. Когда я запускаю его с 8 потоками, он также стоит 10 секунд.
Я имею в виду, что гиперпоточность не дает мне улучшения в производительности. В Linux результат эксперимента такой же.
Обнаружено, что here говорит, что гиперпоточность не дает мне улучшения в некоторых ситуациях. Кроме того, я нашел here, дайте мне некоторые интуитивные результаты.
Однако я попытался написать несколько простых тестов и нашел несколько простых примеров, которые показывают, что гиперпоточность не даст мне явного улучшения. К сожалению, я не нахожу этого.
Итак, мои вопросы заключаются в том, что есть некоторые тесты simple
, показавшие, что гиперпоточность не даст мне какого-либо улучшения производительности.
ПРЕДСТАВЛЕНИЕ использования нескольких потоков очень сильно зависит от того, как вы используете нити, и как синхронизировать данные между потоками. Как производительность, когда у вас есть два потока? Или просто наличие программы однопоточной? –
@JoachimPileborg У него нет 'lock' и' synchronize'. Другими словами, каждый поток вычисляет независимо. –
Несмотря на это, тестирование с меньшим количеством потоков (особенно без дополнительных потоков) всегда является хорошей идеей. Если ничего другого, вы узнаете, в какой момент это не поможет добавить больше потоков * и *, если вашему алгоритму действительно помогает многопоточность. –