Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Najbrža pretraga

[es] :: Pascal / Delphi / Kylix :: Najbrža pretraga

[ Pregleda: 3244 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

borovac
127.0.0.1

Član broj: 29278
Poruke: 220
*.dlp187.bih.net.ba.



Profil

icon Najbrža pretraga15.10.2005. u 19:46 - pre 225 meseci
Koja je najbrža pretraga stringa?
Ja to radim ovako:
Code:

l1:=length(str1);
l2:=length(str2);
for i:=1 to l1 do if copy(str1, i, l2)=str2 then
  begin
    ...
  end;

Da li je brže ako se koristi pos funkcija?
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Član broj: 32202
Poruke: 4391
*.yu1.net.

Sajt: https://avramovic.info


+46 Profil

icon Re: Najbrža pretraga15.10.2005. u 22:57 - pre 225 meseci
pa nisam bash merio vreme ali (ne znam zasto) mislim da je pos brzha
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.223.EUnet.yu.



+1 Profil

icon Re: Najbrža pretraga15.10.2005. u 23:23 - pre 225 meseci
Naravno da je brzi jer Pos() ne pravi nove stringove u memoriji kao sto to radi tvoja Copy() varijanta.
 
Odgovor na temu

nikola.j
Nikola Janković

Član broj: 15712
Poruke: 85
*.com
Via: [es] mailing liste



Profil

icon Re: Najbrža pretraga15.10.2005. u 23:35 - pre 225 meseci
>

Ako ti je brzina bas bitna, uzmi faststrings unit od Petera Morrissa (free) koji
je par puta brzi od standardnih delphi varijanti. Sajt je www.droopyeyes.com
a tamo kaze:

"A useful set of assembly optimised string manipulation routines. The most
remarkable of these is without a doubt the FastReplace function. StringReplace
took over 8 hours to complete multiple replacements on a 10mb string, whereas
FastReplace took 0.5 seconds (yes, half of a second)."
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.223.EUnet.yu.



+1 Profil

icon Re: Najbrža pretraga15.10.2005. u 23:47 - pre 225 meseci
Da dopunim :)

Varijanta sa Copy() generise nekoliko puta duzi masinski kod od Pos() varijante i vrsi interno pozivanje nekoliko procedura (npr. LStrLen, LStrCopy itd.) sto rezultuje sporijim kodom (postavljanje parametara na stek, dodatno "diranje" memorije itd.).
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 810
217.119.242.*



+62 Profil

icon Re: Najbrža pretraga17.10.2005. u 14:16 - pre 225 meseci
Pos() je cisto asemblerska rutina; pogledati unit System.pas. Od ovoga tesko da ima brze.

Rajko
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Član broj: 32202
Poruke: 4391
*.yu1.net.

Sajt: https://avramovic.info


+46 Profil

icon Re: Najbrža pretraga17.10.2005. u 18:03 - pre 225 meseci
[zezanje]ovo je brzhe:
1000101010010111100101010010100000101001011111010010100100111000[/zezanje]

hehehe...

eto, nisam ni znao da je POS asemblerska rutina, ali u svakom slucaju sam pretpostavljao da je to brze od tvog nacina gore... inace ne bi Pos(); ni postojala...
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

borovac
127.0.0.1

Član broj: 29278
Poruke: 220
*.dlp133.bih.net.ba.



Profil

icon Re: Najbrža pretraga17.10.2005. u 18:49 - pre 225 meseci
Baš vam hvala. Pos je funkcija u kompajleru, nema soursa (delphi 7)
hvala
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 810
..njuel-bg.customer.sbb.co.yu.



+62 Profil

icon Re: Najbrža pretraga18.10.2005. u 22:18 - pre 225 meseci
Naravno da ima source. Ako ne mozes da nadjes unit System, onda otvori neki tvoj unit, pa u uses deo dodaj "System". Zatim desni klik na tu rec, pa 'Open file at cursor'. Kad ti otvori, trazi 'pos{' (nije greska: viticasta zagrada). Naci ces vise verzija funkcije, vec prema tipu stringa (short, long/Ansi, wide...). Kompajler bira koju ce funkciju pozvati i to je to.

Rajko
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Najbrža pretraga

[ Pregleda: 3244 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.