Article View: pl.comp.objects
Article #4992Re: Glos na temat zasad dyskusji naukowej
From: Adam Karpierz
Date: Mon, 22 Feb 1999 16:19
Date: Mon, 22 Feb 1999 16:19
56 lines
3602 bytes
3602 bytes
lewando@ibm.net wrote:>Jak zas idzie o odsmiecanie: > >1. Wedle mojej najlepszej wiedzy Python nie ma odsmiecacza, >przynajmniej dosyc swieza wersja ktora mam na swoim >komputerze. MA MIEC, w przyszlosci, ale to bedzie Boehm, a nie >reference coutning. Na razie ma, owszem, reference counting, ale >to programista musi manualnie ten counter aktualizowac, i jedyne >co moze z nim zrobic to sprawdzic jaka ma wartosc. Dosyc >kiepski... Przykro mi ale Panska wiedza w zakresie Pythona nie jest chyba najlepsza. Python ma odsmiecacz oparty na reference counting od zawsze czyli od poczatku swego istnienia. Jakos piszac w Pythonie nigdy tez nie zdarzylo mi sie dbac o reference counting ani nawet go sprawdzac (bo i po co sprawdzac). Klasa ma metody __init__ i __del__ i to z reguly starcza. Inkrementacja i dekrementacja "rererence counting" jest konieczna jedynie w przypadku pisania modulow wbudowanych czy wrapperow w C i to "z reki". Oczywiscie nie bronie tu faktu ze "reference counting" jest super ale bez przesady chyba z tym wsadzaniem go do smietnika. Da sie z nim w Pythonie calkiem niezle zyc (jakos nie jest to zdecydowanie pierwszoplanowy problem Pythona). Ja zauwazam jedna glowna jego wade: circular reference. Z argumentem ze jest wolny tez mozna sie spierac, bo moze czasem lepiej gdy wolniejszy ale rownomiernie rozlozony w czasie i zwalniajacy pamiec na biezaco w przewidywalnym czasie i w przewidywalnym miejscu. Jest wersja Pythona z zastosowanym GC Bohema ale okazala sie... m.in. wolniejsza i na razie nie jest oficjalnie "namaszczona" przez GvR. Problem z "prawdziwym" GC w Pythonie ma byc na tapecie w wersji Python 2.0 ale tez jeszcze nei jest pewne czy i jak zostanie zrealizowany. Python jest typowym 'glue language' i dlatego musi byc maly, prosty (ale zapewniam Pana ze prostacki nie jest) i dlatego stosowanie do jego oceny kryteriow jak do "super" jezykow typu Smalltalk czy Lisp i wymaganie implementacji wszytskich zaawansowanych mechanizmow jest w/g mnie cokolwiek nieporozumieniem. To tak jakby wymagac aby Gmina Paczkow Dolny zafundowada sobie do komunikacji ze stolica JumboJeta. [...] >3. Na dodatek, reference counting ma dosyc duzy "overhead" - oto >mianowicie KAZDA operacja alokowania - zwalniania pamieci musi >poswiecic kiloa cykli CPU na administracje. Teoretycznie oczywiscie, ale w praktyce ilez tez procentowo moze trwac sprawdzenie i ew inkrementacja/dekrementacja licznika (zwykly integer) w stosunku do calej otoczki tworzenia obiektu ?. Czy nie jest tak ze np. w Pythonie jest to czas maksymalnie rzedzu kilku % utraty szybkosci programu ?. Pozdrawiam -- Adam Karpierz Poszukuje stalej pracy, moje dane: http://www.adares.alpha.pl/cv.htm
Technical Details
Message-ID:
<7as3ui$dtr$1@proxy.intertele.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!agh.edu.pl!news.wnaft.agh.edu.pl!news.memax.krakow.pl!dumb.iinf.polsl.gliwice.pl!Eleet.iele.polsl.gliwice.pl!casper.netpol.pl!news.intertele.pl!not-for-mailReferences:
<199902200404.EAA69510@out5.ibm.net>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!agh.edu.pl!news.wnaft.agh.edu.pl!news.memax.krakow.pl!dumb.iinf.polsl.gliwice.pl!Eleet.iele.polsl.gliwice.pl!casper.netpol.pl!news.intertele.pl!not-for-mail From: "Adam Karpierz" <karpierz@itl.pl> Newsgroups: pl.comp.objects Subject: Re: Glos na temat zasad dyskusji naukowej Date: Mon, 22 Feb 1999 17:19:08 +0100 Organization: INTERTELE S.A. http://www.intertele.pl Lines: 59 Message-ID: <7as3ui$dtr$1@proxy.intertele.pl> References: <199902200404.EAA69510@out5.ibm.net> Reply-To: "Adam Karpierz" <karpierz@itl.pl_te_spamy_wykoncza_mi_kiedys_nerwy> NNTP-Posting-Host: ppp214.intertele.pl X-Newsreader: Microsoft Outlook Express 4.72.3110.1 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit