Какой язык быстрее?

Аватар пользователя
kiv
Сообщений: 1012
Зарегистрирован: 02 дек 2011, 21:00

Какой язык быстрее?

Сообщение kiv » 27 янв 2014, 17:47

Wild Bill писал(а):Source of the post
Вопрос надо ставить так, я работаю под ОС ХХХХХХХХ, на языке YYYYYY, какой мне следует выбрать компилятор для лучшего быстродействия. Хотя здесь надо учитывать и модель процессора, так как многие фишки заточены под новые процессоры.


Теоретически - еще и над какого типа задачами...
Последний раз редактировалось kiv 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Wild Bill
Сообщений: 4820
Зарегистрирован: 26 июл 2009, 21:00

Какой язык быстрее?

Сообщение Wild Bill » 27 янв 2014, 18:58

Да.
Последний раз редактировалось Wild Bill 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Andrew58
Сообщений: 8961
Зарегистрирован: 20 янв 2009, 21:00

Какой язык быстрее?

Сообщение Andrew58 » 28 янв 2014, 11:21

kiv писал(а):Source of the post
Wild Bill писал(а):Source of the post
Вопрос надо ставить так, я работаю под ОС ХХХХХХХХ, на языке YYYYYY, какой мне следует выбрать компилятор для лучшего быстродействия. Хотя здесь надо учитывать и модель процессора, так как многие фишки заточены под новые процессоры.

Теоретически - еще и над какого типа задачами...

Видимо, я представляю собой вымирающий вид - как лошадь Пржевальского - поскольку не вижу альтернативы машинному коду.
Последний раз редактировалось Andrew58 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
kiv
Сообщений: 1012
Зарегистрирован: 02 дек 2011, 21:00

Какой язык быстрее?

Сообщение kiv » 28 янв 2014, 13:57

Andrew58 писал(а):Source of the post
Видимо, я представляю собой вымирающий вид - как лошадь Пржевальского - поскольку не вижу альтернативы машинному коду.


До работы над "Компиляторами" я не то чтобы был таким же, но считал, что все же лучше хорошо написанного машинного кода ничего не бывает. После я считаю, что в подавляющем большинстве случаев хороший оптимизирующий компилятор сделает машинный код лучше. Человеку же остается писать хороший код на ЯВУ...
Последний раз редактировалось kiv 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Andrew58
Сообщений: 8961
Зарегистрирован: 20 янв 2009, 21:00

Какой язык быстрее?

Сообщение Andrew58 » 28 янв 2014, 18:46

kiv писал(а):Source of the post
После я считаю, что в подавляющем большинстве случаев хороший оптимизирующий компилятор сделает машинный код лучше.

Да, все зависит от того, насколько кого ситуация приперла.
Третий глаз обычно открывается после 42 дней безвылазного сидения в дизассемблере. Нимб в области головы появляется тоже, но окружающие его не видят - обидно...
Последний раз редактировалось Andrew58 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test

folk
Сообщений: 4177
Зарегистрирован: 11 сен 2009, 21:00

Какой язык быстрее?

Сообщение folk » 28 янв 2014, 20:52

По поводу оптимизации - как правило вылизывать надо только те места программы где она проводит 90% времени или пожирает много памяти. Бессмыссленно угробить кучу своего времени и сил на ту часть программы которая выполняется 1% времени) Исходя из этого прежде чем оптимизировать надо измерить - на практике мы здорово ошибаемся в оценках затратности тех или иных частей программ.
Опять же согласен что на ассемблере можно написать быстрее - допустим на 30% - но это требует таких ресурсов что максимум десяток функций можно хорошо оптимизированно написать. Если писать все на ассемблере то скорее всего будет низкое качество оптимизации - и теряется смысл.
После максимальной оптимизации на компиляторе надо тестировать и тестировать - в этом смысле старался максимальную оптимизацию не использовать - разница в %% а геморроя на порядки.
Но мои задачи не были счетные - скорее драйвера да утилиты) Большинсво программ вообще работают пару раз - толку их оптимизировать)
Последний раз редактировалось folk 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
kiv
Сообщений: 1012
Зарегистрирован: 02 дек 2011, 21:00

Какой язык быстрее?

Сообщение kiv » 29 янв 2014, 09:34

Andrew58 писал(а):Source of the post
Третий глаз обычно открывается после 42 дней безвылазного сидения в дизассемблере. Нимб в области головы появляется тоже, но окружающие его не видят - обидно...


Ну не сможет человек перебрать столько вариантов и отследить столько взаимосвязей, сколько это сделает машина.

Основная задача человека - оптимизация на уровне алгоритма. Вот здесь третий глаз очень нужен - особенно в плане взаимодействия алгоритмов с конкретной вычислительной системой. Вплоть до того, как лучше работать с большим массивом, чтоб эффективнее кэш процессора использовать. А уж какими именно командами сделать это быстрее и с меньшим количеством ветвлений - это уж компилятор сделает эффективнее.

Вот для написания эффективного компилятора - да, согласен: тут машинные коды знать надо здорово, а уж Hacker's Delight должен быть настольной книгой

Впрочем, я уже говорил ранее - многое зависит от того, какую задачу решаешь.
Последний раз редактировалось kiv 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test

folk
Сообщений: 4177
Зарегистрирован: 11 сен 2009, 21:00

Какой язык быстрее?

Сообщение folk » 29 янв 2014, 10:43

kiv писал(а):Source of the post
Ну не сможет человек перебрать столько вариантов и отследить столько взаимосвязей, сколько это сделает машина.

Не в такой постановке) Это как в шахматах - бывает такой код когда он блестит как бриллиант и никакую инструкцию изменить нельзя - такие коды компиляторы делать не умеют (да и не должны). И это то место где ассемблер лучше - но наких мест мало и все больше на косых архитектурах
Бывают коды ради побочного эффекта при работе с аппаратурой
Но в целом согласен - затраты человеческого времени на возню с кодом не оправдываются. Да и вообще говоря система логирования по идее не совместима с супер оптимизацией - а без нее никуда)
Последний раз редактировалось folk 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test

YuriiS
Сообщений: 123
Зарегистрирован: 17 фев 2012, 21:00

Какой язык быстрее?

Сообщение YuriiS » 29 янв 2014, 18:59

kiv писал(а):Source of the post

Основная задача человека - оптимизация на уровне алгоритма. Вот здесь третий глаз очень нужен - особенно в плане взаимодействия алгоритмов с конкретной вычислительной системой. Вплоть до того, как лучше работать с большим массивом, чтоб эффективнее кэш процессора использовать. А уж какими именно командами сделать это быстрее и с меньшим количеством ветвлений - это уж компилятор сделает эффективнее.

Вот "Вплоть", например, при перемножении матриц, как раз и стоит на первом месте. Причем идти в этой задаче надо до конца: компилятор ничего не сделает эффективнее.

kiv писал(а):Source of the post
Вот для написания эффективного компилятора - да, согласен: тут машинные коды знать надо здорово, а уж Hacker's Delight должен быть настольной книгой

Скорее, не машинные коды - это подразумевается априори: например, только относительно недавно скорость программ, написанных на C, сравнялась со скоростью программ, написанных на фортране. Когда смотришь ассемблерный код оптимизированной программы, часто восклицаешь: чудны дела твои, Господи.

kiv писал(а):Source of the post
Впрочем, я уже говорил ранее - многое зависит от того, какую задачу решаешь.

Вот это основное утверждение.
Последний раз редактировалось YuriiS 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Wild Bill
Сообщений: 4820
Зарегистрирован: 26 июл 2009, 21:00

Какой язык быстрее?

Сообщение Wild Bill » 02 фев 2014, 18:00

Andrew58 писал(а):Source of the post
kiv писал(а):Source of the post После я считаю, что в подавляющем большинстве случаев хороший оптимизирующий компилятор сделает машинный код лучше.
Да, все зависит от того, насколько кого ситуация приперла.Третий глаз обычно открывается после 42 дней безвылазного сидения в дизассемблере. Нимб в области головы появляется тоже, но окружающие его не видят - обидно...
Andrew, Kiv очень правильно говорит. Я ещё в старые времена занимался сравнениями, сам устанавливал компиляторы на ЕС и БЭСМ. Тогда не было такого, что сразу ставим бинарники и поехали, компилятор собирался с соответствующими опциями на соответствующем процессоре, как сейчас gcc или Intel. Значит, этот компилятор "помнит" длительность выполнения команд, их совместимость (данные не нужно пересылать из памяти в регистр) и прочее. Человек замается такое писать даже для умножения матриц... Помню, когда разбирал этот пример, то код не прибавлял смещение к адресу, а делал просто сдвиг адреса, это было много быстрее.
Последний раз редактировалось Wild Bill 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test


Вернуться в «Computer Science»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 4 гостей