Учебное пособие C#. Алгоритмы и структуры данных н. А. Тюкачев, В. Г. Хлебостроев издание третье, стереотипное 1 / 23


Download 1.85 Mb.
Pdf ko'rish
bet9/111
Sana19.11.2023
Hajmi1.85 Mb.
#1786905
TuriУчебное пособие
1   ...   5   6   7   8   9   10   11   12   ...   111
Bog'liq
C# Алгоритмы и структуры данных 2018 Тюкачев, Хлебостроев

Листинг 1.3. Класс Timing 
class Timing 

TimeSpan duration
TimeSpan[] threads; 
public Timing() 

duration = new TimeSpan(0); 
threads = new Time-
Span[Process.GetCurrentProcess(). 
Threads.Count]; 

public void StartTime() 

GC.Collect(); 
GC.WaitForPendingFinalizers(); 
11 / 23


12 
for (int i = 0; i < threads.Length; i++) 
threads[i] = Proc-
ess.GetCurrentProcess().Threads[i]. 
UserProcessorTime; 

public void StopTime() 

TimeSpan tmp; 
for (int i = 0; i < threads.Length; i++) 

tmp = Proc-
ess.GetCurrentProcess().Threads[i]. 
UserProcessorTime.Subtract(threads[i]); 
if (tmp > TimeSpan.Zero) 
duration = tmp; 


public TimeSpan Result() 

return duration; 


Класс Timing имеет два поля: duration – для хранения результата 
измерения и поле-массив threads, в котором хранятся значения времени
соответствующие началу измерения для всех потоков процесса. Необходи-
мость наличия такой информации связана с тем, что заранее невозможно ска-
зать, какому из потоков процесса будет поручено выполнение интересующе-
го нас программного кода. Инициализация массива threads осуществляет-
12 / 23


13 
ся в методе StartTime после вызова сборщика мусора. В методе Stop-
Time
производится повторный запрос текущего времени для всех процессов 
и выбирается тот из них, у которого результат оказывается отличным от ис-
ходного значения. Именно этот процесс и выполнял исследуемый код.
Листинг 1.4 содержит код функции, в которой используются два спосо-
ба измерения времени выполнения одного и того же алгоритма сортировки. 

Download 1.85 Mb.

Do'stlaringiz bilan baham:
1   ...   5   6   7   8   9   10   11   12   ...   111




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling