Форум программистов, компьютерный форум CyberForum.ru

Во сколько раз asm быстрее С++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
tvy2
0 / 0 / 0
Регистрация: 05.11.2008
Сообщений: 28
08.12.2011, 15:03     Во сколько раз asm быстрее С++ #1
Есть примерный фрагмент кода:
For i=0 to end1
For j=0 to end2
If massivA(i)=massivB(j) then massivC(k)=j
Next j
Next i

где
massivA, massivB - Byte массивы
massivC - integer массив
end1 и end2 порядка 10 000 000.

Во сколько раз такой код на Assemblere будет быстрее чем на C++?
В идеале надо раз в 100.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2011, 15:03     Во сколько раз asm быстрее С++
Посмотрите здесь:

C++ Ввести одномерный целочисленный массив A, вывести его. Произвести циклический сдвиг вправо его элементов столько раз, сколько раз в массиве встречаютс
Посчитать, сколько раз написано слово "hello" в файле C++
Определить сколько раз слова встречаются в тексте и сколько непосредственно друг за другом. C++
C++ Сколько раз среди заданных символов встречается символ "+" и сколько раз символ "*"
C++ В заданной строке подсчитать сколько раз встречается символ "*" и сколько раз символ "+"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bazile
55 / 31 / 17
Регистрация: 15.03.2007
Сообщений: 6,912
08.12.2011, 15:35     Во сколько раз asm быстрее С++ #2
Для такой простой задачи современные компиляторы C++ сгенерируют код близкий к оптимальному. Переписывание на ассемблере "лоб в лоб", если и даст ускорение, то очень небольшое. Никак не в 100 раз.

Я тебе уже писал что оптимизацию надо начать с алгоритма, а потом уже выбирать язык. Вместо того чтобы приводить малопонятный (по своему назначению) кусок кода, опиши словами свою задачу - входные данные и что должно получиться в результате. Так больше шансов получить вменяемый совет по улучшению.

Чтобы получить серьезное программы переписав ее с языка высокого уровня на ассемблер нужно хорошо знать архитектуру и команды современных процессоров. Новичок в ассемблере рискует написать код который будет работать хуже кода на языке высокого уровня, а ты видимо воспринимаешь ассемблер как "серебрянную пулю", использование которой гарантиует наилучший результат. Зто верно только в случае глубокого знания предмета. Еще раз повторю что самая лучшая оптимизация это оптимизация алгоритма!
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
09.12.2011, 01:49     Во сколько раз asm быстрее С++ #3
прикольно, что быстрее asm или C++ для кода на VB

а если по сути, то bazile прав, для приведенного выше кода, C++ сгенерирует код близкий по быстродействию к коду написанному на ассемблере.
SevaB
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 39
09.12.2011, 11:42     Во сколько раз asm быстрее С++ #4
Низкоуровневая оптимизация - последнее дело. Браться за неё есть смысл только в узких местах, после проведения алгоритмической оптимизации. Да и оптимизировать, если уж оптимизировать таки не переводом на асм "в лоб", а с учетом особенности конкретного процессора.
Yandex
Объявления
09.12.2011, 11:42     Во сколько раз asm быстрее С++
Ответ Создать тему
Опции темы

Текущее время: 18:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru