Re: Mehr Speed?

"Dieter Maurer" <[email protected]>
Newsgroups gmane.comp.web.zope.german
Message-ID <[email protected]>
Michael Hierweck wrote at 2009-4-2 21:16 +0200:
>Dieter Maurer wrote:
>>
>> Plone bindet schon "AdvancedQuery" ein.
>> Es kann "IncrementalSearch2" nutzen, wenn es installiert ist.
>> Gleiches gilt für "Products.AdvancedQuery" und "dm.incrementalsearch".
>
>gibt es einen vernünftigen Grund dies nicht zu tun bzw. dafür, dass
>"IncrementalSearch" nicht Upstream und Default ist?

Ja.

  "IncrementalSearch" (reines Python) ist für einige von "Oder"
  Komponenten dominierte Suchen langsamer als die Standard-Suche.
  Das liegt daran, dass die Standard-Suche auf C-Implementierungen
  zugreift, die um mehrere Größenordnungen schneller sind als
  die entsprechenden Python-Operationen.


  "IncrementalSearch2" (und "dm.incrementalsearch") (C Implementierungen)
  ist immer mindestens so schnell wie
  die Standard-Suche (und in vielen wichtigen Fällen viel schneller),
  läuft aber nicht unter Windows.
  Grund ist vermutlich, dass meine C-Implementierung Erweiterungen
  des GNU-C-Präprozessors nutzt (oder einige Windows-Only
  Shared-Library-Deklarationen vergisst).

  Ich selbst habe eine starke Abneigung gegen Microsoft und möchte
  keinesfalls Investitionen tätigen, die den Umsatz von Microsoft
  erhöhen. Vor daher sind von mir keine Anstrengungen zu
  erwarten, "IncrementalSearch2/dm.incrementalsearch" Windows
  kompatibel zu machen. Aber ich bin bereit, Hilfestellung zu
  leisten, wenn jemand anderes dies tun möchte.


  Hinzu kommt: die Indexe müssen helfen, dass "IncrementalSearch2"
  sein Potential ausschöpfen kann: Die teilweise drastische
  Beschleunigung kommt daher, dass die Objekt-Id-Listen zu
  einem Suchbegriff nicht vollständig gelesen werden sondern
  nur so weit, wie für die Suchausführung benötigt. Dadurch
  werden viel weniger Ladeoperationen nötig, was die Gesamtsuchzeit
  dominiert (wenn die Daten nicht schon im ZODB Cache sind).
  Wenn der Index aber die gesamte Objekt-Id-Liste gelesen hat,
  dann kann "IncrementalSearch2" nicht mehr viel machen.

  Also: "IncrementalSearch2" funktioniert mit beliebigen Indexes;
  damit es aber einen signifikanten Geschwindigkeitsgewinn gibt,
  müssen die Indexe interne "Und/Oder/Nicht" Operationen mit
  Hilfe von "IncrementalSearch2" realisieren.

  Meines Wissens nach tun dies bisher nur die "ManagableIndex"e.


Das oben gesagte gilt analog für "dm.incrementalsearch".



-- 
Dieter


_______________________________________________
zope mailing list
[email protected]
https://mail.dzug.org/mailman/listinfo/zope
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.