🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #28369

Re: thread 100%

#28369
From: Rob Wolfe
Date: Mon, 12 Dec 2011 21:35
36 lines
2794 bytes
zigi <cezar4846@gmail.com> writes:

> On 12 Gru, 12:50, Tomek Kańka <t...@tomkan.eu.org> wrote:
>> zigi <cezar4...@gmail.com> napisał(a)
>>
> Hm,
> system jest windows 2008 R2 pliki na macierzy wszstko działa oki.
> Po prostu napisaełem swój program który robi wykres zawatości
> katalogów. Przy listowaniu niestety jedzie na maxa po procesorze
> czasem aczkolwiek nie zawsze.
> Tutaj to jest jeszcze  zabawa ale chciałbym na przyszłośc pomyśleć jak
> rozwiązać  problem wątków i zajętości procesora, tak pomyślałem że
> może ktoś miał styczność z takim tematem.

Skąd pewność, że tutaj problemem są akurat wątki?
Czy program odpalony jednowątkowo nie zarzyna procka?
Jeśli faktycznie chodzi o wątki, to może odpalasz ich zbyt dużo.
Optymalna liczba wątków zależy od konkretnego przypadku,
ale tworzenie ich na pałę (np. oddzielny wątek dla każdego katalogu)
w prostej linii prowadzi do sytuacji, w której czas procesora
jest pożerany na przełączanie kontekstu między nimi.
Zwykle najlepszym wyjściem jest utworzenie puli o stałej liczbie
wątków i wrzucanie im zadań do jakiejś kolejki.
Wspomniałeś coś o rysowaniu katalogów. Nie wiem na ile zasobożerna
jest ta operacja (odpal profiler i zmierz, yappi [1]_ radzi sobie 
z wątkami), ale jeśli wyjdzie, że jest wąskim gardłem, to niestety
GIL może tu być problemem. Wtedy należy użyć ``multiprocessing``,
a tam masz już nawet gotowca do pulowania procesów [2]_.
Generalnie jeśli chcesz się pobawić w optymalizację,
to polecam lekturę przygód effbota na tym polu [3]_.

.. [1] http://code.google.com/p/yappi/
.. [2] http://docs.python.org/library/multiprocessing.html#using-a-pool-of-workers
.. [3] http://effbot.org/zone/wide-finder.htm

RW
Technical Details
Message-ID: <877h21xylp.fsf@smsnet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!news.mb-net.net!open-news-network.org!aioe.org!.POSTED!not-for-mail
References: <d5f76cd1-7b8b-4b4c-b2da-66b212e9cc15@u6g2000vbg.googlegroups.com> <26c1c0ef-4c73-4a07-9001-ced63ae670b7@u5g2000vbd.googlegroups.com> <slrnjebqjq.94u.tom@tomkan.polbi.pl> <3b5ef72b-8424-4287-8540-a82c258d891f@m10g2000vbc.googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!news.mb-net.net!open-news-network.org!aioe.org!.POSTED!not-for-mail
From: Rob Wolfe <rw@smsnet.pl>
Newsgroups: pl.comp.lang.python
Subject: Re: thread 100%
Date: Mon, 12 Dec 2011 22:35:14 +0100
Organization: Aioe.org NNTP Server
Lines: 36
Message-ID: <877h21xylp.fsf@smsnet.pl>
References: <d5f76cd1-7b8b-4b4c-b2da-66b212e9cc15@u6g2000vbg.googlegroups.com> <26c1c0ef-4c73-4a07-9001-ced63ae670b7@u5g2000vbd.googlegroups.com> <slrnjebqjq.94u.tom@tomkan.polbi.pl> <3b5ef72b-8424-4287-8540-a82c258d891f@m10g2000vbc.googlegroups.com>
NNTP-Posting-Host: 2rGoQNolRk9jw3eVwM369A.user.speranza.aioe.org
Mime-Version: 1.0
X-Complaints-To: abuse@aioe.org
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)
X-Notice: Filtered by postfilter v. 0.8.2
Cancel-Lock: sha1:JoXBIy4dn27kiaP7PEyI0zvQGWc=
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit