DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра програмного забезпечення

Інформація про роботу

Рік:
2015
Тип роботи:
Звіт
Предмет:
Інші
Група:
ПІ

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” КАФЕДРА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ  Звіт До лабораторної роботи № 10 З дисципліни : "Конструювання програмного забезпечення" Варіант 3 Як відомо, у мові програмування С# існує 3 можливі передачі параметрів у функцію, для прикладу void DoSmthg1(ref x), void DoSmthg2(out x), void DoSmthg3(x). Визначити додаткові потреби пам’яті та швидкості для усіх трьох способів передачі параметрів. У процедурі DoSmthg обчислити нове значення змінної x. 1. Дані комп'ютера з параметрами на яких відбувалось порівняльне тестування швидкодії та потреб оперативної пам'яті : Процесор – Intel Quad-Core 2.4 Ghz, ОЗП 4 Гб , Операційна система: Windows 7 Ultimate x64. 2.Дані чисельних експериментів. Час виклику функцій з параметром який передається через ref 15 тис. раз, c Час виклику функцій з параметром який передається через out 15 тис. раз, c Час виклику функцій з параметром який передається , без ref і out 15 тис. раз, c ОЗП для функцій з параметром який передається через ref 15 тис. раз, cMB ОЗП для функцій з параметром який передається через out 15 тис. раз, cMB ОЗП для функцій з параметром який передається без ref і out 15 тис. раз, cMB  Експеримент №1 0.002 0.041 0.037 36.78 37.10 37.41  Експеримент №2 0.002 0.037 0.038 35.08 36.11 36.42  Експеримент №3 0.002 0.039 0.037 35.82 36.13 36.44  Експеримент №4 0.003 0.039 0.037 35.83 36.14 36.45  Експеримент №5 0.001 0.041 0.038 35.79 36.10 36.42  Виглад диспетчера задач після виконання програми:   3) Усереднені дані обчислювальних експериментів фукцій з параметром який передається через ref фукцій з параметром який передається через out функцій з параметром який передається , без ref і out  Середні потреби оперативної пам’яті, 15 тис викликів, MB 35.86 36.32 36.62  Середній час 15 тис викликів, с 0.002 0.039 0.037   Код програми: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; namespace ConsoleApplication2 { class Program { static void Met1(ref int i, int f) { i = 300; if (f > 0) { --f; --i; Met1(ref i, f); } } static void Met2(out int i,int f) { i = 300; if (f > 0) { --f; --i; Met2(out i, f); } } static void Met3( int i, int f) { i = 300; //i++; if (f > 0) { --f; --i; Met3( i, f); } } static void Main() { int Z = 250; int f = 15000; int i=15000; int k = 0; DateTime Time1 = DateTime.Now; for (k = 0; k < Z; k++) Met1(ref k,f); DateTime Time2 = DateTime.Now; Console.WriteLine("Передаємо параметр через ref = {0}", Time2 - Time1); Process[] processlist = Process.GetProcessesByName("ConsoleApplication2.vshost"); Console.WriteLine(processlist[0].PagedMemorySize64 / 1024.0 / 1024.0); Time1 = DateTime.Now; for (k = 0; k < Z; k++) Met2(out i,f); Time2 = DateTime.Now; Console.WriteLine(" Передаємо параметр через out= {0}", Time2 - Time1); processlist = Process.GetProcessesByName("ConsoleApplication2.vshost"); Console.WriteLine(processlist[0].PagedMemorySize64 / 1024.0 / 1024.0); Time1 = DateTime.Now; for (k = 0; k < Z; k++) Met3( k,f); Time2 = DateTime.Now; Console.WriteLine(" Просто передаємо параметр= {0}", Time2 - Time1); Process[] processlist3 = Process.GetProcessesByName("ConsoleApplication2.vshost"); Console.WriteLine(processlist3[0].PagedMemorySize64 / 1024.0 / 1024.0); Console.ReadLine(); } } }  Висновок: В даній лабораторній роботі розглядалося швидкодію і затрати в пам’яті для виклику функцій передаючи їм параметри через ref і out, і без ref та out. Малі затрати в часі коли ми передаємо параметр через ref пов’язані з тим, що ми передаємо саме посилання на місце в пам’яті де знаходяться дані. Використовуючи параметр Out передаємо посилання на місце в пам’яті і за тим посиланням копіюємо дані, це і зумовлює більші затрати в часі і в пам’яті. Коли ми передаємо параметр не використовуючи ні ref ні out то ми вже посилання не передаємо, а просто копіюємо дані.
Антиботан аватар за замовчуванням

2015

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!