Использование оптимизирующего компилятора (Лабораторная работа № 1), страница 2

}
Задача №7

#include <d:\borland\bc\include\stdio.h>

#include <d:\borland\bc\include\stdlib.h>

#include <d:\borland\bc\include\time.h>

#define N 1000000

#define M 100

float expo(float x)

{

   float y = x,r = 1;

   int f = 1;

   long k;

   for(k = 2;k<N;k++)

   {

      r = r + y/f;

      y = y*x;

      f = f*(f+1);

   }

   return r;

}

void mass(float res[])

{

int i; float x;

randomize();

for(i = 0;i<M-1;i++)

   {

      x = 1/(random(M)+1);

      res[i] = expo(x);

   }

}

void main()

{

   float x,res[M];

   int i;

   clock_t start,end;

   randomize();

   start = clock();

   mass(res)

   end = clock();

   for(i = 0;i<M-1;i++)

      printf("exp = %f\n",res[i]);

   printf("Time was %f",(end - start)/CLK_TCK);

}


Задача №8

#include <d:\borland\bc\include\stdio.h>

#include <d:\borland\bc\include\stdlib.h>

#include <d:\borland\bc\include\time.h>

#define N 50000

#define M 100

float loga(float x)

{

   float r = 0,xy = x;

   long i;

   int zn = 1,f = 1;

   for(i = 1;i<N;i++)

   {

      r = r+xy*zn/f;

      xy = xy*x;

      zn = zn*(-1);

      f++;

   }

   return r;

}

void mass(float res[])

{

int i; float x;

randomize();

for(i = 0;i<M-1;i++)

   {

      x = 1/(random(M+10)+1);

      res[i] = loga(x);

   }

}

void main()

{

   float x,res[M];

   int i;

   clock_t start,end;

   randomize();

   start = clock();

   mass (res);

   end = clock();

   for(i = 0;i<M-1;i++)

      printf("ln = %f ",res[i]);

   printf("Time was %f",(end - start)/CLK_TCK);

}



3. Результаты замеров времени работы программ.

Зад-ача №

Процессор (название, частота)

Компилятор (название, версия)

Ключи компи-ляции

N

M

Время вычисления

1

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 3.1

10000000

0,384615

1

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 3.1

-G

10000000

0,329670

1

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 3.1

-O2

10000000

0,329670

1

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Microsoft (R) 32-bit C/C++ Optimizing Compiler V14.00.50727.42

10000000

5,109890

1

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Microsoft (R) 32-bit C/C++ Optimizing Compiler V14.00.50727.42

-O2

10000000

0,000000 //время не показывает

2

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Microsoft (R) 32-bit C/C++ Optimizing Compiler V14.00.50727.43

100000

1,703297

3

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 3.1

19999

1,813187

3

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 3.1

-G

19999

2,087912

3

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 3.1

-O2

19999

1,153846

4

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 5.6

100000

0,016

4

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 5.6

-O2

100000

0,000000 //время не показывает

5

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 3.1

100000

100

0,054945

5

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 3.1

-G

100000

100

0,054946

5

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 3.1

-O2

100000

100

0,054947

5

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 5.6

1000000

100

0,641000

5

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 5.6

-O2

0,625000

6

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 5.6

1000000

100

1,312000

6

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 5.6

-O2

1000001

100

1,281000

6

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 5.6

7

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 3.1

1000000

100

0,989011

7

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 3.1

-G

1000000

100

0,989011

7

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 3.1

-O2

1000000

100

2,967033

8

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 3.1

50000

100

0,054945

8

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 3.1

-G

50000

100

0,054945

8

AMD Athlon™ 64 Processor 3000+ 2.01 ГГц

Borland C++ 3.1

-O2

50000

100

0,164835