Сегодня я решил узнать, какой из трех языков
Visual Basic, Visual Fortran, C++ Builder быстрее считает.
Им была дана одна и та же программа (естественно написанная на родном языке)
ее вид для Си:
Double pi=0;
for(long i=2000000000, i>0, i--) pi=pi+4/(4.0*i-3)-4/(4.0*i-1);
cout << "pi="<< setprecision(17) << pi;и условно положив, что скорость Бейсика равна 100% получил следующее:Visual Basic = 100%C++ Builder = 182%Visual Fortran = 200%Результат несколько неожиданный: То, что Фортран считает в 2 раза быстрее Бейсика, я зналНо почему ему уступил Си??Может это частный случай?Может другие Си быстрее?Или скорость проверяется иначе?
Какой язык быстрее?
Какой язык быстрее?
Последний раз редактировалось geh 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test
Причина: test
Какой язык быстрее?
А вы опубликуйте полностью код программы в С.
Посмотрим, что там наворочили.
Посмотрим, что там наворочили.
Последний раз редактировалось NT 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test
Причина: test
Какой язык быстрее?
Вот полный код:
Код: Выбрать все
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <stdio.h>
#include <iomanip>
#pragma argsused
int main(int args, char* argv[])
{
char s;
Double pi=0;
for(long i=2000000000, i>0, i--) pi=pi+4/(4.0*i-3)-4/(4.0*i-1);
cout << "pi="<< setprecision(17) << pi; cin>>s;
return 0;
}
Последний раз редактировалось geh 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test
Причина: test
Какой язык быстрее?
Ваш код снова у меня не компиловался.
Сделал вот так - проверьте как компиляция у вас проходит.
PS. Да еще надо посмотреть как у вас сборка идёт.
Может есть что лишнее?
Ага еще оптимизация кода включена?
Но как это проверить на Borland C++ Builder, я не знаю.
Надо читать ((
PPS. Аха ответ такой :
pi=3.1415926533397931
Точность вышла только до 9 знака после запятой.
Сделал вот так - проверьте как компиляция у вас проходит.
Код: Выбрать все
#include <stdio.h>
#include <iostream>
#include <iomanip>
using namespace std;
int main(int args, char* argv[])
{
char s;
double pi=0;
for(long i=2000000000; i > 0; i--)
pi +=4/(4.0*i-3)-4/(4.0*i-1);
cout << "pi="<< setprecision(17) << pi; cin>>s;
return 0;
}
PS. Да еще надо посмотреть как у вас сборка идёт.
Может есть что лишнее?
Ага еще оптимизация кода включена?
Но как это проверить на Borland C++ Builder, я не знаю.
Надо читать ((
PPS. Аха ответ такой :
pi=3.1415926533397931
Точность вышла только до 9 знака после запятой.
Последний раз редактировалось NT 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test
Причина: test
Какой язык быстрее?
Я проверил. Ваш код у меня тоже работает.
Но время выполнения программы в 1,5 раза больше.
То есть у меня мой код быстрее. Ничего более сказать не могу.
За три дня много не выучишь.
Спасибо вам.
Но время выполнения программы в 1,5 раза больше.
То есть у меня мой код быстрее. Ничего более сказать не могу.
За три дня много не выучишь.
Спасибо вам.
Последний раз редактировалось geh 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test
Причина: test
Какой язык быстрее?
Оставил в коде самое нужное.
Eсли после выполнения программы пауза не нужна ,
то 2 линейки отмеченные как del - тоже можно выбросить:
Eсли после выполнения программы пауза не нужна ,
то 2 линейки отмеченные как del - тоже можно выбросить:
Код: Выбрать все
#include <stdio.h>
#include <stdlib.h> // del
#define COUNT 2000000000
int main()
{
double pi=0;
for(long i=COUNT; i > 0; i--)
pi +=4/(4.0*i-3)-4/(4.0*i-1);
printf( "Pi=%.16f \n", pi);
system( "pause" ); // del
return 0;
}
Последний раз редактировалось NT 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test
Причина: test
Какой язык быстрее?
geh писал(а):Source of the post
Я проверил. Ваш код у меня тоже работает.
Но время выполнения программы в 1,5 раза больше.
То есть у меня мой код быстрее. Ничего более сказать не могу.
Ну, поскольку ваш код ничем не отличается от второго, то замедление необъяснимо
У вас точно в фоне Windows ничего не делает? Например, при одном запуске просто простаивает, при другом - вы в Интернет лезете...
Точно вы сразу реагируете, когда выведен результат?
Кстати, добавьте после << pi еще << endl, иначе рискуете вывода не дождаться: при буферизованном выводе могут быть самые разные фокусы...Для сравнения - прилагаю скомпилированные VC++ и OW эту же программу.[img]/modules/file/icons/application-octet-stream.png[/img] test.rar
Последний раз редактировалось kiv 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test
Причина: test
Какой язык быстрее?
2 Kiv
1. test_ow - самый быстрый
2. test_vc - на 0.04 сек слабее
Всё-таки многое зависит от компилятора!
Для сравнения мой (Dev-C++) проиграл целых 4 сек.
1. test_ow - самый быстрый
2. test_vc - на 0.04 сек слабее
Всё-таки многое зависит от компилятора!
Для сравнения мой (Dev-C++) проиграл целых 4 сек.
Последний раз редактировалось NT 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test
Причина: test
Какой язык быстрее?
Формулировка "Какой язык быстрее?" вообще бессмысленна.
Если имеется ввиду производительность сгенерированного кода, то оно бедет зависить не от языка, а от колмпилятора. При этом результат зависит от того, какую задачу компилируют. Т.е. ответ будет зависить от самой задачи (например в какой класс она попадает).
Если имеется ввиду производительность сгенерированного кода, то оно бедет зависить не от языка, а от колмпилятора. При этом результат зависит от того, какую задачу компилируют. Т.е. ответ будет зависить от самой задачи (например в какой класс она попадает).
Последний раз редактировалось zykov 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test
Причина: test
Какой язык быстрее?
После внесенных изменений, время работы вашей программы стало равняться времени работы моей
программы. Замена числа 2000000000 на COUNT на скорости программы никак не сказывается.
Я очень вам благодарен за ваше активное участие в этой теме, благодаря чему мои знания и опыт
быстро растут.
Формулировка "Какой язык быстрее?" вообще бессмысленна.
- ??? - я так не считаю. Логика? Например Бейсик обладает большим сервисом (удобством программирования)
Но за все надо платить, на это тратится процессорное время! И никакой компилятор не сделает Бейсик
быстрее Си!!
Я еще раз все проверил. Все верно!
Когда я выбираю в меню консольную программу,
то часть кода задается самой программой.
Выходит, что этот код можно убрать и хуже не будет!!
Ничего не могу понять! Но одно я понял - мне до вас далеко!!
программы. Замена числа 2000000000 на COUNT на скорости программы никак не сказывается.
Я очень вам благодарен за ваше активное участие в этой теме, благодаря чему мои знания и опыт
быстро растут.
Формулировка "Какой язык быстрее?" вообще бессмысленна.
- ??? - я так не считаю. Логика? Например Бейсик обладает большим сервисом (удобством программирования)
Но за все надо платить, на это тратится процессорное время! И никакой компилятор не сделает Бейсик
быстрее Си!!
Я еще раз все проверил. Все верно!
Когда я выбираю в меню консольную программу,
то часть кода задается самой программой.
Выходит, что этот код можно убрать и хуже не будет!!
Ничего не могу понять! Но одно я понял - мне до вас далеко!!
Последний раз редактировалось geh 27 ноя 2019, 21:37, всего редактировалось 1 раз.
Причина: test
Причина: test
Вернуться в «Computer Science»
Кто сейчас на форуме
Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 9 гостей