Date: Fri, 24 Oct 2003 22:20:04 +0200 From: "Anders S. Jensen" <none@doozer--freakout.dk.lh.bsd-dk.dk> To: bsd-dk@bsd-dk.dk Subject: Re: Memory allokering i Python.
On Fri, Oct 24, 2003 at 09:20:04PM +0200, Jesper Louis Andersen wisely wrote:
> En mulighed er at opfatte det som hamrende smart. En anden mulighed er
> at opfatte det som unoedigt komplekst.
Jeg arbejder med HP-UX til dagligt, og jeg vil være tilbøjelig til at
indrømme at jeg nok ikke står forrest i køen for folk som siger at
det er smart...
Men lige præcis i dette tilfælde brugte FreeBSD omkring 56 system
sekunder, og HP-UX omkring 0.1!
> Det giver stof til eftertanke. Det sprog som jeg roder med til dagligt
> har en GC og jeg vil da lige checke hvordan den klarer sig. Specielt
> har vi det ''problem'' at linuximplementationen klarer sig godt fordi
> linux har mmremap(). Jeg tror dog jeg kan give noget mere hastighed
> til *BSD med lidt tanke.
Mit første ruby program i verden:
class Dostuff
bigmother = ""
def addrow(row)
firstrun = 0
for i in row
if firstrun == 0
bigmother = "#{i}"
firstrun = 1
else
bigmother += ",#{i}"
end
end
bigmother += "\n"
end
end
mystuff = Dostuff.new
myrow = [ "/usr/local/some/bleeding/file", 12345, 42, 999 ]
for i in 1..10000
mystuff.addrow(myrow)
end
-viser med al tydelighed at GC'en her er Pythons overlegen, da
truss afslører imponerende 76 kald til break()!
(Den kvikke læser lagde naturligvis straks mærke til at min
"firstrun = 1" sad i det forkerte scope i Python eksemplet?)
Jeg er fuldstændig enig i at problemet let løses ved at
tilføre lidt omtanke til kodningsprocessen (eller ved at
bruge Ruby ;).
-- Mvh,Anders S. Jensen
This archive was generated by hypermail 2b30 : Wed 15 Nov 2006 - 18:24:32 CET