Π”ΠΈΠΏΠ»ΠΎΠΌΡ‹, курсовыС, Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚Ρ‹, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅...
Брочная ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π² ΡƒΡ‡Ρ‘Π±Π΅

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ компиляторов языка Π‘++ для Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… тСстов для Π½Π°ΡˆΠΈΡ… компиляторов, сравнивая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ компилирования. РассмотрСли ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠΏΡ†ΠΈΠΈ компилирования Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ΠΎΠ², Π²Ρ‹Π±Ρ€Π°Π»ΠΈ самыС подходящиС. Π˜Π·ΡƒΡ‡ΠΈΠ² Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ быстрым являСтся компилятор Intel C++ с ΠΎΠΏΡ†ΠΈΠ΅ΠΉO3, особСнно это Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ Π½Π° Π±ΠΎΠ»Π΅Π΅ слоТных… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ компиляторов языка Π‘++ для Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅.

1. ΠžΠ±Π·ΠΎΡ€ компиляторов.

1.1 MinGW.

1.2 Borland Builder.

1.3 Watcom.

1.4 Intel C++.

1.5 Visual C++.

2. ΠžΠ±Π·ΠΎΡ€ Π·Π°Π΄Π°Ρ‡.

3. ВСстированиС Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Π½Π΅ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½ΠΎΠΉ являСтся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²Ρ‹Π±ΠΎΡ€Π° инструмСнта. ΠŸΡ€ΠΈ вычислСниях с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄ Π±Ρ‹Π» ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов ΠΈ Ρ€Π΅ΡΡƒΡ€ΡΠΎΠ² памяти. Помимо этого ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»Π°ΡΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции исходного ΠΊΠΎΠ΄Π°. Π’Π°ΠΊ, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ…, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ тысячи ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ², Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ компиляторы ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’ ΡΠ²ΡΠ·ΠΈ с ΡΡ‚ΠΈΠΌ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ являСтся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²Ρ‹Π±ΠΎΡ€Π° «ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ» компилятора. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Π·Π½Π°Ρ‡ΠΈΠΌΠΎΡΡ‚ΡŒ нашСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ тСстов, ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ компиляторов ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящСго. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΡ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ»ΠΈΡΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстными компиляторами языка Π‘++. Для исслСдования ΠΌΡ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ нСсколько компиляторов, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ: MinGW, Borland Builder, Intel C++ Professional Edition, Watcom ΠΈ Visual Studio.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΈ нашСй Ρ€Π°Π±ΠΎΡ‚Ρ‹:

— ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Π°ΠΌΠΈ языка Π‘/Π‘++,.

— ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ возмоТности Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… компиляторов,.

— ΠΏΡ€ΠΎΠ²Π΅ΡΡ‚ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· компиляторов Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… для Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡.

Π’ ΡΠΎΠΎΡ‚вСтствии с ΠΏΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ цСлями ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ:

— ΠΎΡ‚Ρ‹ΡΠΊΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстным компиляторам,.

— Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ нСсколько тСстовых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ,.

— Π½Π°ΠΉΡ‚ΠΈ Π±ΠΎΠ»Π΅Π΅ слоТныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹,.

— ΠΏΡ€ΠΎΠ²Π΅ΡΡ‚ΠΈ тСстированиС,.

— ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄Ρ‹.

1. ΠžΠ±Π·ΠΎΡ€ компиляторов.

1.1 MinGW.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ взята с ΡΠ°ΠΉΡ‚Π°. MinGW, сокращСнно «ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡ‚ΡΠΊΠΈΠΉ GNU для Windows», являСтся минималистичСской срСдой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для Ρ€ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Microsoft Windows.

MinGW прСдоставляСт ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для развития собствСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ MS-Windows, ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π·Π°Π²ΠΈΡΡΡ‚ ΠΎΡ‚ Π»ΡŽΠ±Ρ‹Ρ… Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ… сторон C-Runtime DLL (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Microsoft C Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, MSVCRT).

MinGW компиляторы ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ доступ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ срСды Microsoft C Runtime ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ спСциализированным-языковым Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ.

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π»ΠΈ Π²Π΅Ρ€ΡΠΈΡŽ 3.4.5, ΠΊΠΎΠΌΠ°Π½Π΄Π° компилирования g++.

1.2 Borland Builder.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ взята с ΡΠ°ΠΉΡ‚Π°. Embarcadero® C++ Builder® XE ΡΠ²Π»ΡΠ΅Ρ‚ся СдинствСнным настоящим RAD C++ инструмСнтом ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для ΡƒΠ»ΡŒΡ‚Ρ€Π°Π±Ρ‹ΡΡ‚Ρ€ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ высоко-сопровоТдаСмых Windows ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с Π³Ρ€Π°Ρ„ичСским интСрфСйсом для Windows ΠΈ ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π»ΠΈ Π²Π΅Ρ€ΡΠΈΡŽ 6.10, ΠΊΠΎΠΌΠ°Π½Π΄Π° компилирования bcc32.exe.

1.3 Watcom.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ взята с ΡΠ°ΠΉΡ‚Π°. Open Watcom являСтся ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для поддСрТания ΠΈ ΡƒΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΡ Watcom C, C++, Fortran кросс-компиляторов ΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π›ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Open Source ΠΎΡ‚ Sybase позволяСт свободноС коммСрчСскоС ΠΈ Π½Π΅ΠΊΠΎΠΌΠΌΠ΅Ρ€Ρ‡Π΅ΡΠΊΠΎΠ΅ использованиС Open Watcom.

Open Watcom компилятор ΠΈΠΌΠ΅Π΅Ρ‚ ряд прСимущСств ΠΏΠ΅Ρ€Π΅Π΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ свободными компиляторами, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ полная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° 16-Π±ΠΈΡ‚Π½Ρ‹Ρ… DOS, Windows. Open Watcom C/C++ компилятор Π² ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΌ доступС, компилятор для 16-Π±ΠΈΡ‚Π½Ρ‹Ρ… Windows ΠΈ OS / 2 устройств. НаконСц, Open Watcom это комплСксный ΠΏΠ°ΠΊΠ΅Ρ‚, Π»Π΅Π³ΠΊΠΈΠΉ Π² ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ, с ΠΏΠΎΠ»Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ инструмСнтов ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π»ΠΈ Π²Π΅Ρ€ΡΠΈΡŽ 1.9, ΠΊΠΎΠΌΠ°Π½Π΄Π° компилирования wcl386.

1.4 Intel C++.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ взята с ΡΠ°ΠΉΡ‚Π°. Intel® C++ Compiler Professional Edition раскрываСт ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ поколСния многоядСрных процСссоров Intel. Professional Edition Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ поставляСтся с ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌΠΈ возмоТностями ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ компилятора, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ процСссора, Π² Ρ‚ΠΎΠΌ числС автоматичСского процСссора ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ, Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ C++ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ для ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, матСматичСской ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π»ΠΈ Π²Π΅Ρ€ΡΠΈΡŽ 11, ΠΊΠΎΠΌΠ°Π½Π΄Π° компилирования icl. ΠŸΡ€ΠΈ запускС компилятора Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ настройки, поэтому запуск компиляции производился Ρ‡Π΅Ρ€Π΅Π· Visual Studio.

1.5 Visual C++.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ взята с ΡΠ°ΠΉΡ‚Π°. Visual C++ — это ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΈ Microsoft, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для языков программирования C, C++ ΠΈ C++/CLI. Visual C++ 2008 прСдоставляСт ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈ Π³ΠΈΠ±ΠΊΡƒΡŽ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π±Π°Π·Π΅ Microsoft Windows ΠΈ Microsoft .NET. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ управляСмоС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ построСниС. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ядра Intel. ВстроСнныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ новСйшиС процСссоры AMD ΠΈ Intel.

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π»ΠΈ Π²Π΅Ρ€ΡΠΈΡŽ 2008, ΠΊΠΎΠΌΠ°Π½Π΄Π° компилирования cl.

БущСствуСт мноТСство ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для измСрСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠ°ΠΌΡΡ‚ΠΈ, ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Ρ€ΡΠ»ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ run. exe, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΎΠ»ΠΈΠΌΠΏΠΈΠ°Π΄ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.

Для Π½Π°Ρ‡Π°Π»Π° сравним характСристики выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ простого ΠΊΠΎΠ΄Π°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½ΠΈΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° число k ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ сумму 1+2+…+k (считая Π΅Π΅ Π² Ρ†ΠΈΠΊΠ»Π΅).

#include.

int main (){.

int i, k;

int s = 0;

freopen («file.in», «r», stdin);

freopen («file.out», «w», stdout);

scanf («%d» ,&k);

for (i = 0; i <= k; i++){.

s = s + i;

};

fprintf (stdout," sum is %dn", s);

return 0;

}.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ….

Π’Π°Π±Π»ΠΈΡ†Π° 1.

ВрСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ k © Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ минимальноС врСмя компиляции Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ столбцС.

k.

1 000.

100 000.

10 000 000.

1 000 000 000.

MinGW.

0.00.

0.01.

0.03.

0.03.

3.67.

Builder.

0.08.

0.09.

0.09.

0.11.

0.92.

Watcom.

0.09.

0.09.

0.09.

0.09.

0.81.

Visual C++.

0.01.

0.03.

0.03.

0.03.

0.78.

Intel C++.

0.00.

0.01.

0.03.

0.03.

0.22.

Π’Π°Π±Π»ΠΈΡ†Π° 2 — затрачСнная ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Кб).

k.

1 000.

100 000.

10 000 000.

1 000 000 000.

MinGW.

Builder.

Watcom.

Visual C++.

Intel C++.

Π’Π°Π±Π»ΠΈΡ†Π° 3 — Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ *exe Ρ„Π°ΠΉΠ»Π° (Кб).

MinGW.

Builder.

Watcom.

Visual C++.

Intel C++.

Π”Π°Π»Π΅Π΅ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ проводится сравнСниС Π½Π° Π±ΠΎΠ»Π΅Π΅ слоТных Π·Π°Π΄Π°Ρ‡Π°Ρ….

2. ΠžΠ±Π·ΠΎΡ€ Π·Π°Π΄Π°Ρ‡ Π—Π°Π΄Π°Ρ‡Π° 1. ΠŸΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство способов расстановки k Ρ„Π΅Ρ€Π·Π΅ΠΉ Π½Π° ΡˆΠ°Ρ…ΠΌΠ°Ρ‚Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ N Π½Π° N Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π½Π΅ Π±ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°.

Π—Π°Π΄Π°Ρ‡Π° 2. Найти количСство Ρ†ΠΈΠΊΠ»ΠΎΠ² Π΄Π»ΠΈΠ½Π½ΠΎΠΉ 5 Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅.

Π—Π°Π΄Π°Ρ‡Π° 3. Найти количСство Ρ†ΠΈΠΊΠ»ΠΎΠ² Π΄Π»ΠΈΠ½Π½ΠΎΠΉ 10 Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅.

Π—Π°Π΄Π°Ρ‡Π° 4. Найти число способов Ρ€Π°ΡΡΡ‚Π°Π²ΠΈΡ‚ΡŒ 144 короля Π½Π° Π΄ΠΎΡΠΊΠ΅ 24 Π½Π° 24 Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ± ΠΎΠ½ΠΈ Π½Π΅ Π±ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°.

3. ВСстированиС Π—Π°Π΄Π°Ρ‡Π° 1. ΠŸΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство способов расстановки k Ρ„Π΅Ρ€Π·Π΅ΠΉ Π½Π° ΡˆΠ°Ρ…ΠΌΠ°Ρ‚Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ N Π½Π° N Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π½Π΅ Π±ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π° ВрСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΡΠ΅ΠΊΡƒΠ½Π΄Π°Ρ… Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ компиляции ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…. Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ минимальноС врСмя Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ столбцС.

MinGW.

ΠšΠ»ΡŽΡ‡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

k.

2 (N=700).

3 (N=80).

4 (N=35).

5 (N=20).

6 (N=16).

— O0.

720.58.

408.05.

853.90.

411.62.

506.21.

— O1.

391.03.

221.16.

531.15.

249.59.

321.78.

— O2.

388.55.

234.75.

494.38.

236.28.

305.54.

— O3.

423.37.

195.31.

414.96.

237.88.

303.38.

Watcom.

ΠšΠ»ΡŽΡ‡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

K.

— od.

1066.56.

714.39.

1873.54.

874.96.

1046.33.

— oneatxzp4.

488.66.

320.94.

685.28.

319.85.

370.83.

— ol.

889.21.

534.38.

1676.56.

767.29.

916.58.

— on.

867.38.

560.14.

1607.11.

768.80.

924.48.

— ot.

873.90.

530.20.

1624.84.

725.37.

924.59.

Borland Builder.

ΠšΠ»ΡŽΡ‡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

k.

— Od.

721.27.

469.14.

1046.30.

484.88.

589.84.

— O2.

716.01.

484.15.

1080.57.

480.76.

601.49.

— Ox.

717.57.

510.92.

1077.09.

481.01.

638.89.

— Ot.

712.83.

480.25.

1123.11.

492.89.

616.73.

Intel C++.

ΠšΠ»ΡŽΡ‡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

k.

/Od.

365.20.

168.71.

1263.90.

547.84.

687.01.

/O1.

361.03.

164.96.

510.15.

235.25.

314.06.

/O2.

366.13.

170.73.

425.77.

207.15.

289.86.

/O3.

382.97.

175.89.

414.92.

203.85.

263.35.

/Ox.

364.18.

174.63.

426.76.

204.75.

287.57.

Visual C++.

ΠšΠ»ΡŽΡ‡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

k.

/Od.

678.32.

316.57.

875.63.

263.41.

507.35.

/O1.

411.98.

310.50.

666.37.

281.16.

356.17.

/O2.

353.30.

325.03.

590.09.

262.13.

343.01.

/Ox.

367.26.

320.43.

600.28.

262.81.

344.34.

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ встроСнный Ρ‚ΠΈΠΏ Π½Π° ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ для Π½Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° Π² Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ тСсты Π΅Ρ‰Π΅ Ρ€Π°Π·. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ измСнились, Π½ΠΎ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π”Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Π³Π΄Π΅ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ компиляции.

Watcom:

1. -od.

2. -oneatx-zp4.

3. -ol.

4. -on.

5. -ot.

Intel C++:

1. /Od.

2. /O1.

3. /O2.

4. /O3.

5. /Ox.

Visual C++:

1. /Od.

2. /O1.

3. /O2.

4. /Ox.

Borland Builder:

1. -Od.

2. -O2.

3. -Ox.

4. -Ot.

MinGW:

1. -O0.

2. -O1.

3. -O2.

4. -O3.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° для Π΄Π²ΡƒΡ… Ρ„Π΅Ρ€Π·Π΅ΠΉ Π½Π° ΠΏΠΎΠ»Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 500 Π½Π° 500.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° для Ρ‚Ρ€Π΅Ρ… Ρ„Π΅Ρ€Π·Π΅ΠΉ Π½Π° ΠΏΠΎΠ»Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 70 Π½Π° 70.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° для Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Ρ„Π΅Ρ€Π·Π΅ΠΉ Π½Π° ΠΏΠΎΠ»Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 30 Π½Π° 30.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° для пяти Ρ„Π΅Ρ€Π·Π΅ΠΉ Π½Π° ΠΏΠΎΠ»Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 18 Π½Π° 18.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° для ΡˆΠ΅ΡΡ‚ΠΈ Ρ„Π΅Ρ€Π·Π΅ΠΉ Π½Π° ΠΏΠΎΠ»Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 15 Π½Π° 15.

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ ΡΡ€Π°Π²Π½ΠΈΠ»ΠΈ значСния скорости выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для k Ρ„Π΅Ρ€Π·Π΅ΠΉ, послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ компиляторами с ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. Π¦ΠΈΡ„Ρ€Π°ΠΌΠΈ Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ компиляторы:

1. MinGW.

2. Watcom.

3. Borland Builder.

4. Intel C++.

5. Visual C++.

НиТняя ось Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ — число k.

Π’Π°ΠΊ ΠΆΠ΅ ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ скорости выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для k Ρ„Π΅Ρ€Π·Π΅ΠΉ, послС компилирования с Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ быстрой ΠΎΠΏΡ†ΠΈΠ΅ΠΉ компилятора Π˜ΡΡ…ΠΎΠ΄Ρ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹, ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ самым быстрым компилятором являСтся Intel C++ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° k > 2, для k = 2 быстрСС всСх Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, скомпилированная компилятором MinGW. Π’ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… случаях Ρ‚Π°ΠΊ ΠΆΠ΅ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ для k > 2 Intel C++ оказываСтся Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ.

Π—Π°Π΄Π°Ρ‡Π° 2. Найти количСство Ρ†ΠΈΠΊΠ»ΠΎΠ² Π΄Π»ΠΈΠ½Π½ΠΎΠΉ 5 Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅. Π¦ΠΈΡ„Ρ€Π°ΠΌΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ компиляции Π—Π°Π΄Π°Ρ‡Π° 3 Найти количСство Ρ†ΠΈΠΊΠ»ΠΎΠ² Π΄Π»ΠΈΠ½Π½ΠΎΠΉ 10 Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅. Π¦ΠΈΡ„Ρ€Π°ΠΌΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ компиляции Π’ ΡΡ‚ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ Π² ΡΠΈΠ»Ρƒ спСцифики ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Π°ΠΆΠ½Ρ‹ΠΌ оказываСтся врСмя компиляции. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ врСмя компилирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ опциями Π—Π°Π΄Π°Ρ‡Π° 4 Найти число способов Ρ€Π°ΡΡΡ‚Π°Π²ΠΈΡ‚ΡŒ 144 короля Π½Π° Π΄ΠΎΡΠΊΠ΅ 24 Π½Π° 24 Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ± ΠΎΠ½ΠΈ Π½Π΅ Π±ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°. Π¦ΠΈΡ„Ρ€Π°ΠΌΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ компилирования.

Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ тСстирования для подсчСта количСства Ρ†ΠΈΠΊΠ»ΠΎΠ² Π΄Π»ΠΈΠ½Π½ΠΎΠΉ 12 Π² Π³Ρ€Π°Ρ„Π΅, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ 32-Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ компиляторами Intel C++ ΠΈ Visual C++, MinGW Π²Ρ‹Π΄Π°Π» сообщСниС ΠΎ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠ΅ памяти, Watcom Π²Ρ‹Π΄Π°Π» сообщСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ слишком слоТныС конструкции. Borland Builder скомпилировал, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° послС компилирования Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° 10 сСкунд для Π³Ρ€Π°Ρ„Π° с 10 Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ, для Π³Ρ€Π°Ρ„Π° с 20 Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ 8 ΠΌΠΈΠ½ΡƒΡ‚Ρƒ ΠΈ Π±ΠΎΠ»Π΅Π΅ 2 часов для Π³Ρ€Π°Ρ„Π° с 30 Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… тСстов для Π½Π°ΡˆΠΈΡ… компиляторов, сравнивая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ компилирования. РассмотрСли ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠΏΡ†ΠΈΠΈ компилирования Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ΠΎΠ², Π²Ρ‹Π±Ρ€Π°Π»ΠΈ самыС подходящиС. Π˜Π·ΡƒΡ‡ΠΈΠ² Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ быстрым являСтся компилятор Intel C++ с ΠΎΠΏΡ†ΠΈΠ΅ΠΉO3, особСнно это Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ Π½Π° Π±ΠΎΠ»Π΅Π΅ слоТных тСстах. Π’Ρ‚ΠΎΡ€Ρ‹ΠΌ послС Π½Π΅Π³ΠΎ ΠΈΠ΄Π΅Ρ‚ Visual C++, Ρ‡Π΅Π³ΠΎ ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΎ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Π΅ΡΡ‚ΡŒ нСкоторая ΡΡ…ΠΎΠΆΠ΅ΡΡ‚ΡŒ. Π”Π°Π»Π΅Π΅ компиляторы ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈΡΡŒ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΈ ΠΏΠΎ Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π²Π΅Π»ΠΈ сСбя Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Но Π²ΡΠ΅ ΠΆΠ΅ Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌ ΠΏΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΠΈ являСтся Watcom, Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅ с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈoneatxzp4, которая являСтся самой быстрой ΠΈΠ· Π²ΡΠ΅Ρ… Π΅Π³ΠΎ ΠΎΠΏΡ†ΠΈΠΈ. MinGW ΠΈ Borland Builder находятся Π½Π°Ρ€Π°Π²Π½Π΅ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ слоТных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ подсчСт Ρ†ΠΈΠΊΠ»ΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 12 (Π³Π΄Π΅ Π±ΠΎΠ»Π΅Π΅ 1000 Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ²) Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ использования 64-Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… компиляторов, Π½ΠΎ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅.

Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников

компилятор опция язык.

[1] MinGW. Minimalist GNU for Windows [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. MinGW.org, 2009. URL: http://www.mingw.org Π—Π°Π³Π». с ΡΠΊΡ€Π°Π½Π°. Π―Π·. Π°Π½Π³Π».

[2] Embracadero [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. Embarcadero Technologies, Inc., 2010 URL: http://www.embarcadero.com/ru/ Π—Π°Π³Π». с ΡΠΊΡ€Π°Π½Π°. Π―Π·. Π°Π½Π³Π».

[3] Intel [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. Intel Corporation, URL: http://intel.com.

Π—Π°Π³Π». с ΡΠΊΡ€Π°Π½Π°.

[4] Open Watcom [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. Some rights recerved Creative Commons URL: http://www.openwatcom.org Π―Π·.Π°Π½Π³Π».

[5] Microsoft Visual Studio [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. Microsoft Corp., 2010.

URL: http://msdn.microsoft.com/ru-ru/vstudio/ Π—Π°Π³Π». с ΡΠΊΡ€Π°Π½Π°. Π―Π·. Π°Π½Π³Π».

[6] ΠšΠ°Ρ€Π°Π²Π°Π΅Π² А. М. ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ расстановок Ρ„Π΅Ρ€Π·Π΅ΠΉ Π½Π° ΡˆΠ°Ρ…ΠΌΠ°Ρ‚Π½ΠΎΠΉ доскС // Казанская Π½Π°ΡƒΠΊΠ°, 2010. № 10. Π‘. 13−16.

[7] ΠšΠ°Ρ€Π°Π²Π°Π΅Π² А. М., Π’ΠΎΡ€ΠΎΠΏΠ°Π΅Π² А. Н. Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ распараллСливания явных Ρ„ΠΎΡ€ΠΌΡƒΠ» для подсчСта ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… Ρ†ΠΈΠΊΠ»ΠΎΠ² Π² Π³Ρ€Π°Ρ„Π΅: Ρ‚Ρ€ΡƒΠ΄Ρ‹ [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс] / «ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ' 2010»: Ρ‚Ρ€ΡƒΠ΄Ρ‹ ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠΉ Π½Π°ΡƒΡ‡Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ. Π³. Π£Ρ„Π°: Уфимский государствСнный Π°Π²ΠΈΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ тСхничСский ΡƒΠ½-Ρ‚. 1 CD-ROM. Π—Π°Π³Π»Π°Π²ΠΈΠ΅ с ΡΡ‚ΠΈΠΊΠ΅Ρ‚ΠΊΠΈ диска.

[8] ΠšΠ°Ρ€Π°Π²Π°Π΅Π² А. М. Π—Π°Π΄Π°Ρ‡Π° ΠΎ Ρ€Π°ΡΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ΅ ΡˆΠ°Ρ…ΠΌΠ°Ρ‚Π½Ρ‹Ρ… ΠΊΠΎΡ€ΠΎΠ»Π΅ΠΉ: ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ // Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π³ΡƒΠΌΠ°Π½ΠΈΡ‚Π°Ρ€Π½Ρ‹Ρ… ΠΈ Π΅ΡΡ‚СствСнных Π½Π°ΡƒΠΊ: ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ II ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠΉ Π½Π°ΡƒΡ‡Π½ΠΎ-практичСской ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ. Π³. ΠœΠΎΡΠΊΠ²Π°, 2010. Π’ΠΎΠΌ II. Π‘. 12−16.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ