Решил я провести небольшой тест на скорость выполненя программ в этих компиляторах. Программы вычисляют чило пи по формуле пи=4-4/3+4/5-4/7+4/9-... с 1 млрд. слагаемых. Вот, собственно коды идентичных программ на с++ и паскале соответсвенно:
C++ Source Code:
1
#include <iostream>
2
#define AMOUNT_OF_AUGENDS 1000000000
3
usingnamespace std;
4
void main(){
5
long i=0, sign=1;
6
double pi=0;
7
while (i<=AMOUNT_OF_AUGENDS){
8
pi+=sign*4/double(2*i+1);
9
sign*=-1;
10
i++;
11
}
12
cout<<"pi="<<pi<<endl;
13
}
и
C++ Source Code:
1
var i,sign:longint;
2
pi:double;
3
begin
4
i:=0;
5
sign:=1;
6
pi:=0;
7
while i<=1000000000 do
8
begin
9
pi:=pi+sign*4/(2*i+1);
10
sign:=sign*(-1);
11
i:=i+1;
12
end;
13
writeln(pi);
14
end.
Результат: С++ при первом выполнении - 18 секунд, при последующих - 9 секунд. Паскаль - 2 мин. 18 секунд. Время засекал секундомером:).
Вопросы: 1. Почему программа с++ выполняется быстрее во второй раз, а на паскале - нет?
2. Что вы скажете насчёт этого теста - объективен ли он?
3. И вот что ещё - почему откомипированная программа в VC++ весит 500КБ? Это же просто с ума сойти можно! (В паскале - 15.2КБ.)
Grez писал: Ну хотябы можно утверждать что visual с++ считает быстрее
Это на современных виндах. Под досом прога сделанная ТП будет работать быстрее чем под новой виндой, а прога на ВЦ там вообще выведет "This program cannot be run in DOS mode!" и сдуется.