|
|
||||||
Сравнение производительности С++ и С# на конкретном примере31.03.2017, 19:33. Показов 7141. Ответов 51
Метки нет (Все метки)
Приветствую знатоков С++ !
Можно ли на С++ вычислить быстрее, чем на C#, переменные для решения уравнения x ^ 3 + y ^ 3 = z ^ 3 - 1 К примеру в диапазоне до 100000. Код на С# Кликните здесь для просмотра всего текста
Обсуждение на ветке С#. Решение на C# прилагаю.
0
|
||||||
| 31.03.2017, 19:33 | |
|
Ответы с готовыми решениями:
51
На конкретном примере Маршрутизация на конкретном примере Линейный криптоанализ на конкретном примере |
|
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
|
|
| 10.04.2017, 13:53 | |
|
Вы используете переменные long long которые занимают 8 байт. В ассемблере регистры общего назначения (eax, ecx и т.д.) имеют разрядность 4 байта, значит не подходят (через костыли конечно можно). Значит надо использовать avx регистры (sse не рассматриваем). Если стека хватит то можно и на чисто ассемблерной вставке, если нет, то для этого в плюсах есть simd команды, которые работают так же шустро.
1
|
|
|
|
|||||||||
| 10.04.2017, 14:10 [ТС] | |||||||||
|
мановар, алгоритм простой
Кликните здесь для просмотра всего текста
Суть: ищем в задаваемом диапазоне переменных (например до 100 000) переменные удовлетворяющие уравнению x^3 + y^3 = z^3 - 1. Мах. границу диапазона вводит пользователь - только натуральные числа (минимальная всегда 1). Далее строится массив (вектор) степеней этих чисел (до макс.границы). Далее в отдельных потоках (зависит от количества лог. ядер ЦП), запускается числодробилка -Func(), которая из этого массива/вектора подбирает варианты когда они удовлетворяют уравнению и выводит в консоль (в main() переменные не возвращаются, но есть глобальные переменные - общие для потоков) Ветка с зеркальными вариантами х,у обрезается. Обрезаются итерации - которые заведомо не дадут нужного результата. Добавлено через 7 минут Естественно каждый поток считает с шагом по массиву/вектору числа самих потоков - threadsN (очень хорошо и равномерно параллелится). Добавлено через 4 минуты
1
|
|||||||||
|
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
|
|
| 10.04.2017, 14:12 | |
|
Потоки еще не изучал (в планах), но на avx переложить попробую.
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|||
| 10.04.2017, 14:38 | |||
|
Добавлено через 3 минуты
0
|
|||
|
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
|
|
| 10.04.2017, 14:51 | |
|
nmcf, из головы вылетело, сразу чего то в avx уперся.
Добавлено через 6 минут Так можно почти все на асме вставками сделать, но какое это сравнение с плюсами.
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 10.04.2017, 14:57 | |
|
мановар, для начала надо включить оптимизацию и посмотреть в окне дизассемблера, что сделал компилятор.
0
|
|
|
|
|||||||
| 10.04.2017, 15:11 [ТС] | |||||||
|
Прирост пока малозаметный. Как не странно (строк немного), в районе 20% от всего времени (расчет до 300 000) - отбирает вывод и преобразование строки.
0
|
|||||||
|
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
|
|
| 10.04.2017, 15:11 | |
|
Не спорю, а то не нужную работу можно проделать.
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 10.04.2017, 16:21 | |
|
0
|
|
|
|
|||||||
| 10.04.2017, 18:35 [ТС] | |||||||
|
через printf, запись короче в 3 раза, но как не удивительно, выводится несколько дольше...
Кликните здесь для просмотра всего текста
Развитие архитектур процессоров пошло так, что printf явно получает преимущества и мало что делается для повышения производительности полиморфического подхода, заложенного в cout. Поэтому, если вам нужны производительность и эффективность, лучше выбрать printf.
Добавлено через 1 минуту
0
|
|||||||
| 18.04.2017, 19:43 | |
|
Сравнение насколько может быть быстрее из тутора: Tutorial — Create C/C++ plugins for Unity3D
Reference machine: Macbook Pro 15″ Mid 2014, Intel I7 2.2Ghz
0
|
|
| 18.04.2017, 19:43 | |
|
Принцип работы цикла на конкретном примере Оптимальная реализация построения БД на конкретном примере Использование функции округления на конкретном примере Как распарсить JSON на джаве на конкретном примере?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|