Программа test_sub.Cpp
Turbo Profiler Version 2.1 Thu Apr 22 03:36:56 2004
Program: D:\BORLANDC\BIN\TEST_SUB.EXE File E:\WORK\8_CEM\METR\MPO\LABS\LAB2_1\S
Time Counts
const unsigned Size = 1000;
0.0000 4 void TestLoop(int nTimes)
{
static int TestDim[Size];
int tmp;
int iLoop;
0.0616 1804 while (nTimes > 0)
{
0.0023 1800 nTimes --;
0.1122 1800 iLoop = Size;
59.889 1801800 while (iLoop > 0)
{
58.369 1800000 iLoop -- ;
57.314 1800000 tmp = TestDim[0];
61.607 1800000 TestDim[0] = TestDim[nTimes];
56.296 1800000 TestDim[nTimes] = tmp;
}
}
0.0000 4 } /* TestLoop */
0.0000 1 void main()
{
0.0000 1 TestLoop(Size / 10); // 100 * 1000 Ї®ўв®аҐЁ©
0.0000 1 TestLoop(Size / 5); // 200 * 1000 Ї®ўв®аҐЁ©
0.0000 1 TestLoop(Size / 2); // 500 * 1000 Ї®ўв®аҐЁ©
0.0000 1 TestLoop(Size / 1); // 1000* 1000 Ї®ўв®аҐЁ©
0.0000 1 }
Результаты профилирования по времени test_ sub.c
Turbo Profiler Version 2.1 Thu Apr 22 03:37:10 2004
Program: D:\BORLANDC\BIN\TEST_SUB.EXE
Execution Profile
Total time: 293.65 sec
% of total: 1 %
Run: 1 of 1
Filter: All
Show: Time
Sort: Frequency
#TEST_SUB#19 61.607 sec 20% |**********************************************
#TEST_SUB#15 59.889 sec 20% |********************************************
#TEST_SUB#17 58.369 sec 19% |*******************************************
#TEST_SUB#18 57.314 sec 19% |******************************************
#TEST_SUB#20 56.296 sec 19% |******************************************
#TEST_SUB#14 0.1122 sec <1% |
#TEST_SUB#10 0.0616 sec <1% |
#TEST_SUB#12 0.0023 sec <1% |
TestLoop 0.0000 sec <1% |
#TEST_SUB#23 0.0000 sec <1% |
#TEST_SUB#29 0.0000 sec <1% |
#TEST_SUB#28 0.0000 sec <1% |
#TEST_SUB#30 0.0000 sec <1% |
#TEST_SUB#31 0.0000 sec <1% |
_main 0.0000 sec <1% |
#TEST_SUB#32 0.0000 sec <1% |
Результаты профилирования по частоте test_ sub.c
Turbo Profiler Version 2.1 Thu Apr 22 03:37:25 2004
Program: D:\BORLANDC\BIN\TEST_SUB.EXE
Execution Profile
Total time: 293.65 sec
% of total: 1 %
Run: 1 of 1
Filter: All
Show: Counts
Sort: Frequency
#TEST_SUB#15 1801800 20% |++++++++++++++++++++++++++++++++++++++++++++++
#TEST_SUB#19 1800000 19% |+++++++++++++++++++++++++++++++++++++++++++++
#TEST_SUB#17 1800000 19% |+++++++++++++++++++++++++++++++++++++++++++++
#TEST_SUB#20 1800000 19% |+++++++++++++++++++++++++++++++++++++++++++++
#TEST_SUB#18 1800000 19% |+++++++++++++++++++++++++++++++++++++++++++++
#TEST_SUB#10 1804 <1% |
#TEST_SUB#12 1800 <1% |
#TEST_SUB#14 1800 <1% |
TestLoop 4 <1% |
#TEST_SUB#23 4 <1% |
#TEST_SUB#29 1 <1% |
#TEST_SUB#28 1 <1% |
_main 1 <1% |
#TEST_SUB#31 1 <1% |
#TEST_SUB#30 1 <1% |
#TEST_SUB#32 1 <1% |
Результаты профилирования по средним временам на 1 вызов test_ sub.c
Turbo Profiler Version 2.1 Thu Apr 22 03:37:38 2004
Program: D:\BORLANDC\BIN\TEST_SUB.EXE
Execution Profile
Total time: 293.65 sec
% of total: 1 %
Run: 1 of 1
Filter: All
Show: Time per call
Sort: Frequency
#TEST_SUB#14 0.0000 sec/call |**********************************************
#TEST_SUB#19 0.0000 sec/call |************************
#TEST_SUB#10 0.0000 sec/call |************************
#TEST_SUB#15 0.0000 sec/call |************************
#TEST_SUB#17 0.0000 sec/call |***********************
#TEST_SUB#18 0.0000 sec/call |***********************
#TEST_SUB#20 0.0000 sec/call |***********************
#TEST_SUB#28 0.0000 sec/call |*
#TEST_SUB#30 0.0000 sec/call |*
#TEST_SUB#31 0.0000 sec/call |*
#TEST_SUB#29 0.0000 sec/call |*
TestLoop 0.0000 sec/call |
_main 0.0000 sec/call |
#TEST_SUB#12 0.0000 sec/call |
#TEST_SUB#23 0.0000 sec/call |
#TEST_SUB#32 0.0000 sec/call |
Выводы: как показали проведенные исследования дольше всех выполняется внутренний цикл подпрограммы. Время же команд вызова подпрограммы незначительно мало.
Обработка собственной программы