Article View: pl.comp.lang.python
Article #28369Re: thread 100%
From: Rob Wolfe
Date: Mon, 12 Dec 2011 21:35
Date: Mon, 12 Dec 2011 21:35
36 lines
2794 bytes
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-mailReferences:
<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