У меня есть вопрос об оптимизации файла сборки, который я получил из .cpp-файла! Это мой hw из класса компьютерных организаций. hw выглядит следующим образом. Мне нужно написать программу, которая вычисляет произведение точек двух векторов и сгенерирует файл .asm. Затем я должен оптимизировать файл .asm и сравнить время выполнения с помощью QueryPerformanceCounter в Visual Studio. Я сгенерировал файл .asm и нашел в нем часть цикла. Я пытаюсь изучить базовый язык ассемблера для оптимизации сборки. Однако я не знаю, как выполнить файл .asm. Мой профессор упомянул о связи между .cpp-файлом и сборкой, но не знаю, что это значит. Любая помощь будет назначена.Оптимизация сборки для файла .cpp
ответ
Если я понимаю, что ваш профессор спрашивает, что вам нужно сделать это шаги:
Создать функцию в C++ для вычисления скалярного произведения.
В
main()
, вызовите эту функцию в цикле много тысяч раз, скажем, 5000.Добавьте вызов
QueryPerformanceCounter
до и после этого цикла.Запустите программу и отметьте общее время, затраченное на вызов вашей функции 5000 раз.
Используйте компилятор для создания сборки для вашей функции. Сохраните эту сборку в файле .asm и затем оптимизируйте ее.
Соберите файл .asm с соответствующим ассемблером, чтобы сгенерировать файл .obj.
Скомпилируйте ваш .cpp-файл и свяжите его с файлом .obj, сгенерированным на шаге выше, чтобы создать файл .exe.
Запустите программу еще раз и обратите внимание на общее время, которое требуется для вызова вашей оптимизированной функции 5000 раз.
Сравните два измерения (и обратите внимание, как компилятор, вероятно, лучше оптимизирован, чем вы).
Вы не говорите, какую компилятор, ассемблер или аппаратную платформу вы используете, поэтому я не могу предоставить более подробную информацию.
Спасибо за комментарий. Я использую визуальную студию на окнах. Шаги, которые вы предложили, выглядят правильно, но я хочу знать, как это сделать. Я сделал до пятого шага. После этого я не знаю, как сгенерировать файл .obj с визуальной студией и связать файл .cpp с .obj-файлом! – eChung00
Вы не можете сгенерировать файл .obj с помощью Visual Studio. Для этого нужен ассемблер. Ваш профессор не предоставил или рекомендовал использовать ассемблер? Предполагая, что вы находитесь на платформе x86, вы можете найти список ассемблеров [здесь] (http://en.wikipedia.org/wiki/Comparison_of_assemblers), некоторые из которых являются свободными и открытыми. Прокрутите страницу до "x86". –
Я действительно не вижу, как этот ответ помогает вообще. http://goo.gl/gYrx2P –
- 1. Оптимизация размера для сборки
- 2. Оптимизация сборки для ARM
- 3. Ошибка сборки компилятора Dev -Cpp
- 4. Оптимизация функций сборки неона
- 5. Оптимизация сборки продукта/разборки
- 6. Создание файла h для этого .cpp-файла
- 7. Оптимизация сборки MIPS
- 8. Как получить эквивалент сборки CPP-файла, имеющего только шаблоны
- 9. Оптимизация словаря сборки для списка списка
- 10. visual studio компилятор, как указать путь include для сборки cpp
- 11. Генерация файла .cpp
- 12. Оптимизация процесса сборки Дюрандаль в
- 13. Поисковая оптимизация для файла kml
- 14. Оптимизация .hex размер файла для встроенного программирования
- 15. Изменение содержимого .cpp-файла
- 16. чтение файла байта cpp
- 17. Владелец файла Ubuntu cpp
- 18. определить местоположение файла cpp
- 19. рычаг код сборки - понимание разобрать источник cpp
- 20. Почему нет .cpp для c-файла программы?
- 21. armeabi-v7a компиляции ошибка для CPP файла
- 22. Emacs flycheck синтаксис Чечер для CPP файла
- 23. Как создать рабочую Makefile для .cpp файла
- 24. Использование Xcode для создания одного .cpp-файла
- 25. Есть ли токензатор для файла cpp
- 26. Visual Studio Оптимизация скорости сборки только локально
- 27. riak, cpp libary и ошибки сборки
- 28. Xcode: построение архитектуры для каждого файла сборки сборки сборки
- 29. CPP MediaFoundation - mp4 Размер файла
- 30. Как вернуть каталог файла cpp?
Ваш профессор хочет, чтобы вы настроили код сборки, сгенерированный на C++, и не дали вам никаких указаний по сборке asm? Похоже на худший класс в существовании. –
Не пробовал, но появился быстрый поиск [этот учебник] (http://www.codeproject.com/Articles/271627/Assembly-Programming-with-Visual-Studio-2010-2012) на codeproject, который на наименее * выглядит * полезным. Если ваш профессор не настаивает на сборке и подключении в исходном файле внешней сборки, вы также можете попробовать встроенную сборку. – us2012
Он рассказал о том, как сгенерировать код сборки, но не показал, как это сделать. Я решил создать код сборки, и теперь проблема заключается в том, чтобы связать файл .cpp и оптимизированный ассемблерный код. – eChung00