490 / 286 / 129
Регистрация: 30.10.2018
Сообщений: 1,309
|
||||||
1 | ||||||
std::move тормозит процесс25.12.2019, 23:11. Показов 1582. Ответов 5
Метки нет (Все метки)
Привет, слушал конференцию Антона Полухина, в один момент он сказал что std::move при извлечении последнего элемента из вектора будет ускорять, я не поверил, и решил затестить, на тестах в средем на 6-8% код выполняеться дольше, т.е. его слова не верны, или я что-то не так делаю?
0
|
25.12.2019, 23:11 | |
Ответы с готовыми решениями:
5
std::move() Std::move Optional и std::move Функция std::move() |
Вездепух
12804 / 6679 / 1797
Регистрация: 18.10.2014
Сообщений: 16,903
|
|
25.12.2019, 23:14 | 2 |
0
|
490 / 286 / 129
Регистрация: 30.10.2018
Сообщений: 1,309
|
|
25.12.2019, 23:22 [ТС] | 3 |
TheCalligrapher, даже протестировав в релизе, разница уменшилась до 3-4%, но все равно не в ту сторону.
0
|
693 / 303 / 99
Регистрация: 04.07.2014
Сообщений: 846
|
|
25.12.2019, 23:39 | 5 |
1. Сделай строку больше (например, "SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS"), а то короткие строки могут храниться прямо внутри тела std::string, без использования динамической памяти.
2. Передай a в функцию, которую не видно, а то оптимизатор в первом случае мог выкинуть код создания a (маловероятно)3. Проверь как отличается ассемблерный выхлоп.
1
|
490 / 286 / 129
Регистрация: 30.10.2018
Сообщений: 1,309
|
|
25.12.2019, 23:45 [ТС] | 6 |
да, точно, он говорил об выиграше на new и delete, я как-то пропустил это, конечно теперь я полностью осознал это.
Конечно, первый пример все подводит к тому чему нужно. Спасибо.
0
|
25.12.2019, 23:45 | |
25.12.2019, 23:45 | |
Помогаю со студенческими работами здесь
6
Отличие std::move от & ? Немного не понимаю std::move Func(std::move(.) копирует ? Error: 'move' is not a member of 'std' Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи | |||||
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
|
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
|
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
|
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
|
Параллельное программирование: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование
Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
|
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
|
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке
В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
|
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
|
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins
В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
|
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang
Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
|
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
|
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
|