Skip to content

Д.з. по модулю 9 "Работа с объектами Python"#175

Open
nsa3108 wants to merge 10 commits into
mainfrom
nskorokhodova_first_branch
Open

Д.з. по модулю 9 "Работа с объектами Python"#175
nsa3108 wants to merge 10 commits into
mainfrom
nskorokhodova_first_branch

Conversation

@nsa3108
Copy link
Copy Markdown
Collaborator

@nsa3108 nsa3108 commented Nov 14, 2023

No description provided.

def __init__(self, text, paragraph_symbol):
self.text = text
self.paragraph_symbol = paragraph_symbol
self.paragraphs = text.split(paragraph_symbol)
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Здесь помимо исходного текста в памяти создается ещё и список похожего размера. Таким образом, весь смысл итератора - экономия памяти - теряется.
На самом деле тут достаточно сохранить text в self.text и в методе __next__ обходить текст посимвольно, накапливая прочтённые символы в отдельной переменной (буфере) и возвращая этот буфер всякий раз, как встретится символ параграфа.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

попробовала написала через функцию

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Хорошая попытка) Но во-первых, это уже генератор, а не итератор. А во-вторых, всё тот же split, всё тот же список, занимающий память.

Comment thread Practice/nskorokhodova/Practice_lec_9_task2.py
Comment thread Practice/nskorokhodova/Practice_lec_10_task4.py Outdated
Comment thread Practice/nskorokhodova/Practice_mod_12_task1.py Outdated
Comment thread Practice/nskorokhodova/Practice_mod_12_task1.py
Comment thread Practice/nskorokhodova/Practice_mod_12_task1.py Outdated
Comment thread Practice/nskorokhodova/Practice_mod_12_task1.py Outdated
Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Есть существенные замечания. И ожидаются выводы по процессам/потокам: кто же всё-таки оказался быстрее?

@nsa3108
Copy link
Copy Markdown
Collaborator Author

nsa3108 commented Nov 17, 2023

Д.з. по модулю 12 задача1 - замечания исправила

@nsa3108
Copy link
Copy Markdown
Collaborator Author

nsa3108 commented Nov 17, 2023

Быстрее оказались потоки


start_time = time.time()
primes3 = find_primes(30000, 20001)
print(f"Время выполнения третьего диапазона: {time.time() - start_time} сек")
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Какой смысл здесь замерять время для каждого диапазона, если для потоков и процессов замеряется общее время вычислений. Как одно с другим сравнивать?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Да, согласна, тоже подумала, что получается каким то лишним этот расчет, надо удалить его

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Сами-то последовательные вычисления надо оставить. Только нужно сделать один start_time = time.time() перед всем блоком последовательных вычислений и один print(f"Время выполнения третьего диапазона: {time.time() - start_time} сек") после этого блока.


conn.sendall(send_data)

conn.close()
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ресурс лучше освобождать там же, где он занимался. Т.е. в start_server()

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

хорошо

Comment thread Practice/nskorokhodova/Practice_modul15_task1.py
Comment thread Practice/nskorokhodova/Practice_modul15_task1.py Outdated
@IlyaOrlov
Copy link
Copy Markdown
Owner

Быстрее оказались потоки

Это вряд ли;)

Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

По заданию Practice_modul15_task1.py замечаний нет.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants