powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / почему for в C++ в 7 раз медленее, чем в Go ?
25 сообщений из 25, страница 1 из 1
почему for в C++ в 7 раз медленее, чем в Go ?
    #39706625
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C++ = 2.950s
Код: plaintext
1.
2.
3.
4.
5.
int main()
{
    for (int i = 999999999;   i > 0;   i--) {}
//    for (int i = 0;   i < 999999999;   i++) {} // такой же результат
}



Go = 0.440s
Код: plaintext
1.
2.
3.
4.
5.
package main

func main() {
    for i := 999999999;   i > 0;   i-- {}
}
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39706631
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что чайник забыл включить оптимизацию при компиляции С++.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39706633
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудух,

как оно может быть медленнее если там одна команда ???

Код: asm
1.
2.
3.
main:
  xor eax, eax
  ret
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39706647
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OoCc,

А что тогда там в го?
Го-оно же тоже компилится через gcc
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39706659
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglOoCc,

А что тогда там в го?
Го-оно же тоже компилится через gcc
Понятия не имею что такое go. Предпологаю что нужно посмотреть что он там генерирует для gcc
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39706692
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давным давно тестировали фортрановские компиляторы на похожей программе. На всех компиляторах компиляция шла минут 10, а результат считался около 1.5 часов. И только один компилятор компилировал более 1.5 часов, но результат выводил мгновенно. Народ охренел, полез в код, а там стоит просто печать числа. Компилятор обнаружил, что все данные есть в программе и "соптимизировал" ее до 0. Это я к чему: дизассемблируйте код, посмотрите чем у вас там C++ занимается.
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39706693
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудух C++ = 2.950s
Код: plaintext
1.
2.
3.
4.
5.
int main()
{
    for (int i = 999999999;   i > 0;   i--) {}
//    for (int i = 0;   i < 999999999;   i++) {} // такой же результат
}



Go = 0.440s
Код: plaintext
1.
2.
3.
4.
5.
package main

func main() {
    for i := 999999999;   i > 0;   i-- {}
}


Этот код не делает полезного действия в цикле. Агрессивный компиллятор может выкидывать такие
циклы из основного алгоритма и как следствие в Go ты мог увидеть таймаут старт-стопа процесса.
Хотя возможны варианты.

Но если ты добавишь в тело цикла какой-то полезный смысл типа там рендеринга трехмерной картинки
то результат замера может тебя приятно удивить.
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39706694
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovПотому что чайник забыл включить оптимизацию при компиляции С++.
0.003s
расходимся
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39706695
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglOoCc,

А что тогда там в го?
Го-оно же тоже компилится через gcc
у го свой компилятор, написан на го
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39706696
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот только у го опций для оптимизации нет, и что делать с 0.440s теперь - непонятно...
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39706699
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рассмотрите еще платформенный аспект. В Windows цена старт-стопа процесса всегда дороже чем в Linux.
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39706704
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

да не, здесь типичный аспект "рукиизжопы". ничего нового =)
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39707406
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухDimitry SibiryakovПотому что чайник забыл включить оптимизацию при компиляции С++.
0.003s
расходимся

....ага, разводняк, что и было видно с самого начала
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39707421
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага. А потом статья в Хабре - "Зашквар С++". Или "Go уделал С++".
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39707689
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухвот только у го опций для оптимизации нет, и что делать с 0.440s теперь - непонятно...Вариант "ничего не делать" не рассматривался?
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39707690
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonРассмотрите еще платформенный аспект. В Windows цена старт-стопа процесса всегда дороже чем в Linux.Процесса или потока? :)
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39707697
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devmaytonРассмотрите еще платформенный аспект. В Windows цена старт-стопа процесса всегда дороже чем в Linux.Процесса или потока? :)
Ты исходник видишь? Функция main(). Зачем спрашивать банальности?
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39707790
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonАга. А потом статья в Хабре - "Зашквар С++". Или "Go уделал С++".
тогда с этого бы и начал.
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39707793
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
технически то я нигде и не с3.14здЕл
без -O2 он действительно в 7 раз медленнее
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39707799
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухтехнически то я нигде и не с3.14здЕл
без -O2 он действительно в 7 раз медленнее
А с -funroll-all-loops ваще можно идти курить
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39709629
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудух,

Ты просто неправильно мериишь время...
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39709713
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovПотому что чайник забыл включить оптимизацию при компиляции С++.


С оптимизацией неинтересно, с оптимизацией оптимизатор вообще цикл выбросит, он же не нужен ни за чем...
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39709967
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivполудух,

Ты просто неправильно мериишь время...
это как? есть бинарник, вот он работает X ms
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39728141
trdm_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivDimitry SibiryakovПотому что чайник забыл включить оптимизацию при компиляции С++.


С оптимизацией неинтересно, с оптимизацией оптимизатор вообще цикл выбросит, он же не нужен ни за чем...
может в Go так и произошло.
Хотя 3 секунды на пустой цикл в c++ мне кажется странным.
...
Рейтинг: 0 / 0
почему for в C++ в 7 раз медленее, чем в Go ?
    #39733227
skibidi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно измерять время через clock(), в твоем коде учитывается много лишнего.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / почему for в C++ в 7 раз медленее, чем в Go ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]