+
+
\ No newline at end of file
diff --git "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/inspectionProfiles/profiles_settings.xml" "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/inspectionProfiles/profiles_settings.xml"
new file mode 100644
index 00000000..105ce2da
--- /dev/null
+++ "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/inspectionProfiles/profiles_settings.xml"
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/misc.xml" "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/misc.xml"
new file mode 100644
index 00000000..a2e120dc
--- /dev/null
+++ "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/misc.xml"
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/modules.xml" "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/modules.xml"
new file mode 100644
index 00000000..81413de9
--- /dev/null
+++ "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/modules.xml"
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/vcs.xml" "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/vcs.xml"
new file mode 100644
index 00000000..6c0b8635
--- /dev/null
+++ "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/vcs.xml"
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/workspace.xml" "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/workspace.xml"
new file mode 100644
index 00000000..baaf9e3e
--- /dev/null
+++ "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/workspace.xml"
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1593594407458
+
+
+ 1593594407458
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265.iml" "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265.iml"
new file mode 100644
index 00000000..67116063
--- /dev/null
+++ "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265.iml"
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py"
index c6d2fdde..f7661e1c 100644
--- "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py"
+++ "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py"
@@ -8,3 +8,46 @@
Базовый список: [-55, -69, -5, 72, -41, -58, -79, 58, 74, 1]
Максимальный отрицательный элемент в данном массиве = -5, его индекс 2
"""
+<<<<<<< Updated upstream
+=======
+from random import randint
+from memory_profiler import profile
+from sys import getrefcount
+
+
+@profile
+def task_5():
+ a = [randint(-100, 100) for i in range(100000)]
+ print(a)
+ b = [a[el] for el in range(len(a)) if a[el] < 0]
+ c = min(b, key=abs)
+ d = a.index(min(b, key=abs))
+ print(f'Максимальный отрицательный элемент в данном массиве = {c}, его индекс {d}')
+ print(f'Количество ссылок на первый массив {getrefcount(a)}')
+ print(f'Количество ссылок на первый массив {getrefcount(b)}')
+
+
+task_5()
+
+"""
+Line # Mem usage Increment Line Contents
+================================================
+ 14 16.1 MiB 16.1 MiB @profile
+ 15 def task_5():
+ 16 18.7 MiB 0.6 MiB a = [randint(-100, 100) for i in range(100000)]
+ 17 18.2 MiB 0.0 MiB print(a)
+ 18 18.6 MiB 0.1 MiB b = [a[el] for el in range(len(a)) if a[el] < 0]
+ 19 18.6 MiB 0.0 MiB c = min(b, key=abs)
+ 20 18.6 MiB 0.0 MiB d = a.index(min(b, key=abs))
+ 21 18.6 MiB 0.0 MiB print(f'Максимальный отрицательный элемент в данном массиве = {c},
+ его индекс {d}')
+
+По данным замера так же видно, чтобольшую часть памяти берёт на себя генератор списка, при небольших значениях массивов
+трата памяти незначительна, использовав range = 10**6 показало относительно большое использвание памяти в первом
+массиве, и незначительное во втором (во многом благодаря генератору списков).
+Для оптимизации кода слеудет удалить ссылки на массив a и b командой del после выполнения кода.
+
+Не понятно, почему начальные 16.1 приросли до 18.7 при инкременте 0.6. Тоже погрешность?
+
+"""
+>>>>>>> Stashed changes
diff --git "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py"
index 923e89af..77471ae8 100644
--- "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py"
+++ "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py"
@@ -13,3 +13,71 @@
Массив: [88, 58, 50, 77, 49, 6, 42, 67, 14, 79]
Сумма элементов между минимальным (6) и максимальным (88) элементами: 234
"""
+<<<<<<< Updated upstream
+=======
+from random import randint
+from memory_profiler import profile
+from sys import getrefcount
+
+
+@profile
+def task_3_6():
+ a = int(input('Введите количество элементов в массиве: '))
+ b = [randint(0, 100) for el in range(a)]
+ print(b)
+ c = b.index(max(b))
+ d = b.index(min(b))
+ if abs(c - d) == 1:
+ print(f'Между максимальным элементом {max(b)} c индексом {c} и минимальным {min(b)} с индексом {d} нет чисел')
+ elif c < d:
+ print(f'Сумма элементов между минимальным {min(b)} и максимальным {max(b)} элементами: {sum(b[c:d])}')
+ elif c > d:
+ print(f'Сумма элементов между минимальным {min(b)} и максимальным {max(b)} элементами: {sum(b[d:c])}')
+ print(getrefcount(b))
+ del b
+
+task_3_6()
+
+"""Line # Mem usage Increment Line Contents
+================================================
+ 20 16.2 MiB 16.2 MiB @profile
+ 21 def task_3_6():
+ 22 16.2 MiB 0.0 MiB a = int(input('Введите количество элементов в массиве: '))
+ 23 23.8 MiB 0.4 MiB b = [randint(0, 100) for el in range(a)]
+ 24 23.8 MiB 0.0 MiB print(b)
+ 25 23.8 MiB 0.0 MiB c = b.index(max(b))
+ 26 23.8 MiB 0.0 MiB d = b.index(min(b))
+ 27 23.8 MiB 0.0 MiB if abs(c - d) == 1:
+ 28 print(f'Между максимальным элементом {max(b)} c индексом {c} и
+ минимальным {min(b)} с индексом {d} нет чисел')
+ 29 23.8 MiB 0.0 MiB elif c < d:
+ 30 print(f'Сумма элементов между минимальным {min(b)} и
+ максимальным {max(b)} элементами: {sum(b[c:d])}')
+ 31 23.8 MiB 0.0 MiB elif c > d:
+ 32 23.8 MiB 0.0 MiB print(f'Сумма элементов между минимальным {min(b)} и
+ максимальным {max(b)} элементами: {sum(b[d:c])}')
+
+ По данным измерений видно, что большой инкремент памяти бы использован при генерации списка. Но для этого пришлось
+ использовать range = 10**6. Для оптимизации использования памяти нужно удалить значение b после использования кода
+ del b.
+
+ Line # Mem usage Increment Line Contents
+================================================
+ 20 16.2 MiB 16.2 MiB @profile
+ 21 def task_3_6():
+ 22 16.2 MiB 0.0 MiB a = int(input('Введите количество элементов в массиве: '))
+ 23 24.7 MiB 0.6 MiB b = [randint(0, 100) for el in range(a)]
+ 24 24.7 MiB 0.0 MiB print(b)
+ 25 24.7 MiB 0.0 MiB c = b.index(max(b))
+ 26 24.7 MiB 0.0 MiB d = b.index(min(b))
+ 27 24.7 MiB 0.0 MiB if abs(c - d) == 1:
+ 28 print(f'Между максимальным элементом {max(b)} c индексом {c} и минимальным {min(b)} с индексом {d} нет чисел')
+ 29 24.7 MiB 0.0 MiB elif c < d:
+ 30 print(f'Сумма элементов между минимальным {min(b)} и максимальным {max(b)} элементами: {sum(b[c:d])}')
+ 31 24.7 MiB 0.0 MiB elif c > d:
+ 32 24.7 MiB 0.0 MiB print(f'Сумма элементов между минимальным {min(b)} и максимальным {max(b)} элементами: {sum(b[d:c])}')
+ 33 17.1 MiB 0.0 MiB del b
+
+после добавления del память вернулась к прежнему значению, не считая погрешности профайлера.
+ """
+>>>>>>> Stashed changes
From 07cc2f7192474ce63594e71923ba7605c62b3ab4 Mon Sep 17 00:00:00 2001
From: VerkhVektor <59034328+VerkhVektor@users.noreply.github.com>
Date: Wed, 1 Jul 2020 15:13:09 +0500
Subject: [PATCH 2/3] Revert "HW 6"
This reverts commit ca651d41e486ff342ab284bc73ca14a820414db4.
---
.../.idea/workspace.xml" | 174 ------------------
.../inspectionProfiles/profiles_settings.xml" | 6 -
.../.idea/misc.xml" | 4 -
.../.idea/modules.xml" | 8 -
.../.idea/vcs.xml" | 6 -
.../.idea/workspace.xml" | 127 -------------
...0\264\320\260\320\275\320\270\320\265.iml" | 11 --
.../task_5.py" | 43 -----
.../task_6.py" | 68 -------
9 files changed, 447 deletions(-)
delete mode 100644 "\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/workspace.xml"
delete mode 100644 "\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/inspectionProfiles/profiles_settings.xml"
delete mode 100644 "\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/misc.xml"
delete mode 100644 "\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/modules.xml"
delete mode 100644 "\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/vcs.xml"
delete mode 100644 "\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/workspace.xml"
delete mode 100644 "\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265.iml"
diff --git "a/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/workspace.xml" "b/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/workspace.xml"
deleted file mode 100644
index 1ab722c7..00000000
--- "a/\320\243\321\200\320\276\320\272 2. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/workspace.xml"
+++ /dev/null
@@ -1,174 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/inspectionProfiles/profiles_settings.xml" "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/inspectionProfiles/profiles_settings.xml"
deleted file mode 100644
index 105ce2da..00000000
--- "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/inspectionProfiles/profiles_settings.xml"
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/misc.xml" "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/misc.xml"
deleted file mode 100644
index a2e120dc..00000000
--- "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/misc.xml"
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/modules.xml" "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/modules.xml"
deleted file mode 100644
index 81413de9..00000000
--- "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/modules.xml"
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/vcs.xml" "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/vcs.xml"
deleted file mode 100644
index 6c0b8635..00000000
--- "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/vcs.xml"
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/workspace.xml" "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/workspace.xml"
deleted file mode 100644
index baaf9e3e..00000000
--- "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/workspace.xml"
+++ /dev/null
@@ -1,127 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1593594407458
-
-
- 1593594407458
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265.iml" "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265.iml"
deleted file mode 100644
index 67116063..00000000
--- "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/.idea/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265.iml"
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py" "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py"
index f7661e1c..c6d2fdde 100644
--- "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py"
+++ "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_5.py"
@@ -8,46 +8,3 @@
Базовый список: [-55, -69, -5, 72, -41, -58, -79, 58, 74, 1]
Максимальный отрицательный элемент в данном массиве = -5, его индекс 2
"""
-<<<<<<< Updated upstream
-=======
-from random import randint
-from memory_profiler import profile
-from sys import getrefcount
-
-
-@profile
-def task_5():
- a = [randint(-100, 100) for i in range(100000)]
- print(a)
- b = [a[el] for el in range(len(a)) if a[el] < 0]
- c = min(b, key=abs)
- d = a.index(min(b, key=abs))
- print(f'Максимальный отрицательный элемент в данном массиве = {c}, его индекс {d}')
- print(f'Количество ссылок на первый массив {getrefcount(a)}')
- print(f'Количество ссылок на первый массив {getrefcount(b)}')
-
-
-task_5()
-
-"""
-Line # Mem usage Increment Line Contents
-================================================
- 14 16.1 MiB 16.1 MiB @profile
- 15 def task_5():
- 16 18.7 MiB 0.6 MiB a = [randint(-100, 100) for i in range(100000)]
- 17 18.2 MiB 0.0 MiB print(a)
- 18 18.6 MiB 0.1 MiB b = [a[el] for el in range(len(a)) if a[el] < 0]
- 19 18.6 MiB 0.0 MiB c = min(b, key=abs)
- 20 18.6 MiB 0.0 MiB d = a.index(min(b, key=abs))
- 21 18.6 MiB 0.0 MiB print(f'Максимальный отрицательный элемент в данном массиве = {c},
- его индекс {d}')
-
-По данным замера так же видно, чтобольшую часть памяти берёт на себя генератор списка, при небольших значениях массивов
-трата памяти незначительна, использовав range = 10**6 показало относительно большое использвание памяти в первом
-массиве, и незначительное во втором (во многом благодаря генератору списков).
-Для оптимизации кода слеудет удалить ссылки на массив a и b командой del после выполнения кода.
-
-Не понятно, почему начальные 16.1 приросли до 18.7 при инкременте 0.6. Тоже погрешность?
-
-"""
->>>>>>> Stashed changes
diff --git "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py" "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py"
index 77471ae8..923e89af 100644
--- "a/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py"
+++ "b/\320\243\321\200\320\276\320\272 3.\320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_6.py"
@@ -13,71 +13,3 @@
Массив: [88, 58, 50, 77, 49, 6, 42, 67, 14, 79]
Сумма элементов между минимальным (6) и максимальным (88) элементами: 234
"""
-<<<<<<< Updated upstream
-=======
-from random import randint
-from memory_profiler import profile
-from sys import getrefcount
-
-
-@profile
-def task_3_6():
- a = int(input('Введите количество элементов в массиве: '))
- b = [randint(0, 100) for el in range(a)]
- print(b)
- c = b.index(max(b))
- d = b.index(min(b))
- if abs(c - d) == 1:
- print(f'Между максимальным элементом {max(b)} c индексом {c} и минимальным {min(b)} с индексом {d} нет чисел')
- elif c < d:
- print(f'Сумма элементов между минимальным {min(b)} и максимальным {max(b)} элементами: {sum(b[c:d])}')
- elif c > d:
- print(f'Сумма элементов между минимальным {min(b)} и максимальным {max(b)} элементами: {sum(b[d:c])}')
- print(getrefcount(b))
- del b
-
-task_3_6()
-
-"""Line # Mem usage Increment Line Contents
-================================================
- 20 16.2 MiB 16.2 MiB @profile
- 21 def task_3_6():
- 22 16.2 MiB 0.0 MiB a = int(input('Введите количество элементов в массиве: '))
- 23 23.8 MiB 0.4 MiB b = [randint(0, 100) for el in range(a)]
- 24 23.8 MiB 0.0 MiB print(b)
- 25 23.8 MiB 0.0 MiB c = b.index(max(b))
- 26 23.8 MiB 0.0 MiB d = b.index(min(b))
- 27 23.8 MiB 0.0 MiB if abs(c - d) == 1:
- 28 print(f'Между максимальным элементом {max(b)} c индексом {c} и
- минимальным {min(b)} с индексом {d} нет чисел')
- 29 23.8 MiB 0.0 MiB elif c < d:
- 30 print(f'Сумма элементов между минимальным {min(b)} и
- максимальным {max(b)} элементами: {sum(b[c:d])}')
- 31 23.8 MiB 0.0 MiB elif c > d:
- 32 23.8 MiB 0.0 MiB print(f'Сумма элементов между минимальным {min(b)} и
- максимальным {max(b)} элементами: {sum(b[d:c])}')
-
- По данным измерений видно, что большой инкремент памяти бы использован при генерации списка. Но для этого пришлось
- использовать range = 10**6. Для оптимизации использования памяти нужно удалить значение b после использования кода
- del b.
-
- Line # Mem usage Increment Line Contents
-================================================
- 20 16.2 MiB 16.2 MiB @profile
- 21 def task_3_6():
- 22 16.2 MiB 0.0 MiB a = int(input('Введите количество элементов в массиве: '))
- 23 24.7 MiB 0.6 MiB b = [randint(0, 100) for el in range(a)]
- 24 24.7 MiB 0.0 MiB print(b)
- 25 24.7 MiB 0.0 MiB c = b.index(max(b))
- 26 24.7 MiB 0.0 MiB d = b.index(min(b))
- 27 24.7 MiB 0.0 MiB if abs(c - d) == 1:
- 28 print(f'Между максимальным элементом {max(b)} c индексом {c} и минимальным {min(b)} с индексом {d} нет чисел')
- 29 24.7 MiB 0.0 MiB elif c < d:
- 30 print(f'Сумма элементов между минимальным {min(b)} и максимальным {max(b)} элементами: {sum(b[c:d])}')
- 31 24.7 MiB 0.0 MiB elif c > d:
- 32 24.7 MiB 0.0 MiB print(f'Сумма элементов между минимальным {min(b)} и максимальным {max(b)} элементами: {sum(b[d:c])}')
- 33 17.1 MiB 0.0 MiB del b
-
-после добавления del память вернулась к прежнему значению, не считая погрешности профайлера.
- """
->>>>>>> Stashed changes
From ff657d64efe5cf15d99cd32c87c8a692f115a6b2 Mon Sep 17 00:00:00 2001
From: VerkhVektor <59034328+VerkhVektor@users.noreply.github.com>
Date: Wed, 1 Jul 2020 15:16:49 +0500
Subject: [PATCH 3/3] HW 6
---
.../task_1.py" | 69 +++++++++++++++++++
.../task_1_2.py" | 40 +++++++++++
2 files changed, 109 insertions(+)
create mode 100644 "\320\243\321\200\320\276\320\272 6. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1_2.py"
diff --git "a/\320\243\321\200\320\276\320\272 6. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py" "b/\320\243\321\200\320\276\320\272 6. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py"
index 0bbcc43f..08f25f15 100644
--- "a/\320\243\321\200\320\276\320\272 6. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py"
+++ "b/\320\243\321\200\320\276\320\272 6. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1.py"
@@ -12,3 +12,72 @@
ВНИМАНИЕ: ЗАДАНИЯ, В КОТОРЫХ БУДУТ ГОЛЫЕ ЦИФРЫ ЗАМЕРОВ (БЕЗ АНАЛИТИКИ)
БУДУТ ПРИНИМАТЬСЯ С ОЦЕНКОЙ УДОВЛЕТВОРИТЕЛЬНО
"""
+from random import randint
+from memory_profiler import profile
+from sys import getrefcount
+
+
+@profile
+def task_3_6():
+ a = int(input('Введите количество элементов в массиве: '))
+ b = [randint(0, 100) for el in range(a)]
+ print(b)
+ c = b.index(max(b))
+ d = b.index(min(b))
+ if abs(c - d) == 1:
+ print(f'Между максимальным элементом {max(b)} c индексом {c} и минимальным {min(b)} с индексом {d} нет чисел')
+ elif c < d:
+ print(f'Сумма элементов между минимальным {min(b)} и максимальным {max(b)} элементами: {sum(b[c:d])}')
+ elif c > d:
+ print(f'Сумма элементов между минимальным {min(b)} и максимальным {max(b)} элементами: {sum(b[d:c])}')
+ print(getrefcount(b))
+ del b
+
+
+task_3_6()
+
+"""Line # Mem usage Increment Line Contents
+================================================
+ 20 16.2 MiB 16.2 MiB @profile
+ 21 def task_3_6():
+ 22 16.2 MiB 0.0 MiB a = int(input('Введите количество элементов в массиве: '))
+ 23 23.8 MiB 0.4 MiB b = [randint(0, 100) for el in range(a)]
+ 24 23.8 MiB 0.0 MiB print(b)
+ 25 23.8 MiB 0.0 MiB c = b.index(max(b))
+ 26 23.8 MiB 0.0 MiB d = b.index(min(b))
+ 27 23.8 MiB 0.0 MiB if abs(c - d) == 1:
+ 28 print(f'Между максимальным элементом {max(b)} c индексом {c} и
+ минимальным {min(b)} с индексом {d} нет чисел')
+ 29 23.8 MiB 0.0 MiB elif c < d:
+ 30 print(f'Сумма элементов между минимальным {min(b)} и
+ максимальным {max(b)} элементами: {sum(b[c:d])}')
+ 31 23.8 MiB 0.0 MiB elif c > d:
+ 32 23.8 MiB 0.0 MiB print(f'Сумма элементов между минимальным {min(b)} и
+ максимальным {max(b)} элементами: {sum(b[d:c])}')
+
+ По данным измерений видно, что большой инкремент памяти бы использован при генерации списка. Но для этого пришлось
+ использовать range = 10**6. Для оптимизации использования памяти нужно удалить значение b после использования кода
+ del b.
+
+ Line # Mem usage Increment Line Contents
+================================================
+ 20 16.2 MiB 16.2 MiB @profile
+ 21 def task_3_6():
+ 22 16.2 MiB 0.0 MiB a = int(input('Введите количество элементов в массиве: '))
+ 23 24.7 MiB 0.6 MiB b = [randint(0, 100) for el in range(a)]
+ 24 24.7 MiB 0.0 MiB print(b)
+ 25 24.7 MiB 0.0 MiB c = b.index(max(b))
+ 26 24.7 MiB 0.0 MiB d = b.index(min(b))
+ 27 24.7 MiB 0.0 MiB if abs(c - d) == 1:
+ 28 print(f'Между максимальным элементом {max(b)} c индексом {c} и
+ минимальным {min(b)} с индексом {d} нет чисел')
+ 29 24.7 MiB 0.0 MiB elif c < d:
+ 30 print(f'Сумма элементов между минимальным {min(b)} и
+ максимальным {max(b)} элементами: {sum(b[c:d])}')
+ 31 24.7 MiB 0.0 MiB elif c > d:
+ 32 24.7 MiB 0.0 MiB print(f'Сумма элементов между минимальным {min(b)} и
+ максимальным {max(b)} элементами: {sum(b[d:c])}')
+ 33 17.1 MiB 0.0 MiB del b
+
+после добавления del память вернулась к прежнему значению, не считая погрешности профайлера.
+ """
\ No newline at end of file
diff --git "a/\320\243\321\200\320\276\320\272 6. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1_2.py" "b/\320\243\321\200\320\276\320\272 6. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1_2.py"
new file mode 100644
index 00000000..342d72f3
--- /dev/null
+++ "b/\320\243\321\200\320\276\320\272 6. \320\237\321\200\320\260\320\272\321\202\320\270\321\207\320\265\321\201\320\272\320\276\320\265 \320\267\320\260\320\264\320\260\320\275\320\270\320\265/task_1_2.py"
@@ -0,0 +1,40 @@
+from random import randint
+from memory_profiler import profile
+from sys import getrefcount
+
+
+@profile
+def task_5():
+ a = [randint(-100, 100) for i in range(100000)]
+ print(a)
+ b = [a[el] for el in range(len(a)) if a[el] < 0]
+ c = min(b, key=abs)
+ d = a.index(min(b, key=abs))
+ print(f'Максимальный отрицательный элемент в данном массиве = {c}, его индекс {d}')
+ print(f'Количество ссылок на первый массив {getrefcount(a)}')
+ print(f'Количество ссылок на первый массив {getrefcount(b)}')
+
+
+task_5()
+
+"""
+Line # Mem usage Increment Line Contents
+================================================
+ 14 16.1 MiB 16.1 MiB @profile
+ 15 def task_5():
+ 16 18.7 MiB 0.6 MiB a = [randint(-100, 100) for i in range(100000)]
+ 17 18.2 MiB 0.0 MiB print(a)
+ 18 18.6 MiB 0.1 MiB b = [a[el] for el in range(len(a)) if a[el] < 0]
+ 19 18.6 MiB 0.0 MiB c = min(b, key=abs)
+ 20 18.6 MiB 0.0 MiB d = a.index(min(b, key=abs))
+ 21 18.6 MiB 0.0 MiB print(f'Максимальный отрицательный элемент в данном массиве = {c},
+ его индекс {d}')
+
+По данным замера так же видно, чтобольшую часть памяти берёт на себя генератор списка, при небольших значениях массивов
+трата памяти незначительна, использовав range = 10**6 показало относительно большое использвание памяти в первом
+массиве, и незначительное во втором (во многом благодаря генератору списков).
+Для оптимизации кода слеудет удалить ссылки на массив a и b командой del после выполнения кода.
+
+Не понятно, почему начальные 16.1 приросли до 18.7 при инкременте 0.6. Тоже погрешность?
+
+"""
\ No newline at end of file