DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Звіт до лабораторної роботи № 10 з дисципліни "Конструювання програмного забезпечення"

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

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

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

Рік:
2010
Тип роботи:
Звіт
Предмет:
Захист програмного забезпечення
Група:
ПІ
Коротко про документ

Про що ця робота

У звіті досліджено особливості передачі параметрів у функціях мови C# за допомогою модифікаторів ref, out та без них. Проведено порівняльний аналіз витрат оперативної пам'яті та швидкодії під час виконання програмного коду.

У роботі розглядаються

  • Програмування на C#
  • Передача параметрів у функції
  • Модифікатори ref та out
  • Аналіз швидкодії
  • Витрати оперативної пам'яті
  • Експериментальні дослідження

Зміст і розділи

  1. Варіант 3
  2. Дані комп'ютера з параметрами
  3. Дані чисельних експериментів
  4. Усереднені дані обчислювальних експериментів
  5. Код програми
  6. Висновок
Для кого:Студенти технічних спеціальностей та викладачі програмування
Викладачі:Не вказано

Ключові поняття

C#refoutпам'ятьшвидкодіяфункціятестуванняексперимент

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

МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” КАФЕДРА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ  Звіт До лабораторної роботи № 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 то ми вже посилання не передаємо, а просто копіюємо дані.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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