🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #52493

Re: Perl tablice

#52493
From: Stachu 'Dozzie' K.
Date: Mon, 24 Dec 2012 00:39
45 lines
3438 bytes
On 2012-12-24, Anonim Anonimowy <amkrankruleuen@gmail.com> wrote:
[...]
>> A teraz opisz, w jaki sposób się różni twoje rozwiązanie od FIFO.
>>
>> I wyjaśnij, czemu uważasz przepisywanie za każdym razem wszystkich stu
>> elementów (i to dwukrotnie!) za szybkie.

> Ty zakładasz, że ja chcę w pewien sposób kolejkować odczytywane elementy, a mi zależy na tablicy którą będę mógł odczytać w dowolny sposób, np. środkowy element w czasie rzeczywistym, zapytałem ogólnie, a nie do konkretnego zastosowania.

Bo wiesz, FIFO o stałym maksymalnym rozmiarze się nie da zrobić na
tablicy. Tylko cicho o tym, bo jak się mój kod o tym dowie, to
przestanie działać.

A ten "czas rzeczywisty", mój drogi, to się nazywa czasem stałym
("O(1)").

> Po drugie jakie jakie dwukrotne przepisywanie?! Matematyka się kłania...
> Załóżmy, że mam tablice i wykonam takie operacje:
> @array = (1..10);
> @array = @array[0..3];
>
> Gdzie tu dwukrotne przepisanie?

A jak dokładasz element na początku tablicy, jeszcze przed tym kodem, to
niby co się robi? Hyc, i system operacyjny alokuje miejsce przed
tablicą? W garbate aniołki może wierzysz?

> Co więcej głowy sobie uciąć nie dam, że perl nie jest wyczulony na tego typu operacje i nie przepisze danych na zupełnie nowe adresy tylko po prostu skróci tablice zamiast całą przepisywać.

Tego by się można spodziewać po pop(), a nie po przypisaniu z zakresem.
Nie za dużo ty wymagasz od optymalizatora, który ma być przede wszystkim
szybki, a nie dawać szybki kod?

> Moja tablica będzie po prostu z czasem zapełniana elementami, a mi
> zależy na tym, żeby tych elementów nigdy nie było więcej niż 100,
> dodanie nowego elementu nie wiąże się z tym, że na pewno w tym samym
> czasie chce odczytać tablice...

To po prostu ignoruj dopisanie wszystkiego, co próbuje wleźć do
zapełnionej tablicy. Chyba że znowu spieprzyłeś sprawę nieprecyzyjnie
opisując oczekiwany skutek.

-- 
Secunia non olet.
Stanislaw Klekot
Technical Details
Message-ID: <slrnkdf92o.ni1.dozzie@jarowit.net>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.supermedia.pl!newsfeed.pionier.net.pl!feeder.erje.net!eu.feeder.erje.net!weretis.net!feeder1.news.weretis.net!news.solani.org!.POSTED!not-for-mail
References: <afbdca47-192b-4596-ba38-f400620b9a76@googlegroups.com> <slrnkdeqet.ni1.dozzie@jarowit.net> <7e56a750-b82c-4bc8-ae2d-7a96d058573e@googlegroups.com> <slrnkdf3fk.ni1.dozzie@jarowit.net> <6a88da03-9dc7-4dc4-9694-9c11382d552b@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.supermedia.pl!newsfeed.pionier.net.pl!feeder.erje.net!eu.feeder.erje.net!weretis.net!feeder1.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: "Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid>
Newsgroups: pl.comp.lang.perl
Subject: Re: Perl tablice
Date: Mon, 24 Dec 2012 00:39:48 +0000 (UTC)
Organization: solani.org
Lines: 45
Message-ID: <slrnkdf92o.ni1.dozzie@jarowit.net>
References: <afbdca47-192b-4596-ba38-f400620b9a76@googlegroups.com> <slrnkdeqet.ni1.dozzie@jarowit.net> <7e56a750-b82c-4bc8-ae2d-7a96d058573e@googlegroups.com> <slrnkdf3fk.ni1.dozzie@jarowit.net> <6a88da03-9dc7-4dc4-9694-9c11382d552b@googlegroups.com>
Mime-Version: 1.0
X-Trace: solani.org 1356309588 9299 eJwFwQEBACAIA7BK4uFoHLzSP4JbgEalM+jR0U+wlWdKKkv67UYt3ZubLFVtISdGOM7A2x8z4hGN (24 Dec 2012 00:39:48 GMT)
X-Complaints-To: abuse@news.solani.org
NNTP-Posting-Date: Mon, 24 Dec 2012 00:39:48 +0000 (UTC)
User-Agent: slrn/pre1.0.0-18 (Linux)
X-User-ID: eJwFwQkBwDAIA0BLoQ2B2RmPfwm98ytTBeWir2/uhxN72AROwv+OEJiduDWmJDROq5q22Af9YRBE
Cancel-Lock: sha1:rGaJg7C1bITRkcfUeevouX/BKz4=
X-NNTP-Posting-Host: eJwFwYEBACAEBMCViP8YR9L+I3QHo7K3E3Q8vDaKPPU7R6rmVG/2JMNhVheRMr6igNRZhQ8o7hEp
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit