Jak rychle pracovat s dokumenty?

Čas od času se objeví články, které by stálo za to zarámovat a pověsit si nad stůl. Jedním z nich je článek v posledním čísle časopisu THE VIEW, který rozebírá různé možnosti nalézání dokumentů v pohledech a jejich výkonové srovnání. To nejdůležitější, jsem se pokusil sepsat.

Důležitá informace na úvod – neprocházíme celý pohled, ale pouze nalezené dokumenty. Díky tomu jsou výsledky takřka určitě jiné, než kdyby člověk procházel celý pohled.

Jaká metoda nalezení dokumentu je tedy nejrychlejší? Úplně nejrychlejší je kombinace cyklu For (díky tomu, že jsme potřebné dokumenty nalezli pomoci metody GetAllDocumentsByKey, tak víme jejich počet) v kombinaci s metodou GetNextDocument třídy NotesDocumentCollection.

Na druhém místě se umístila kombinace cyklu While s metodou GetNextDocument třídy NotesDocumentCollection. Následuje použití třídy NotesViewNavigator a cyklů While, který je rychlejší, a Do, ten je o kousek pomalejší.

Předchozí výsledky se týkaly kategorizovaných pohledů – jejich procházení je rychlejší než procházení tříděných pohledů, ty jsou na řadě nyní. Zajímavé je, že rychlost je vyšší u kategorizovaných pohledů přibližně o 10% a to již je cítit.

Po procházení tříděných pohledů přichází na řadu metoda FTSearch kombinovaná s cyklem While. U této metody je ale nutné počítat s tím, že aktualizace indexu nemusí být okamžitá a mívá zpoždění. Někdy i citelné, zvláště pokud dochází k aktualizaci pouze jednou denně.

Překvapením asi není, že procházení dokumentů vyhledaných pomocí metody GetDocumentByKey je ještě pomalejší. Po každém posunu na další dokument je totiž nutné otestovat, zda pořád vyhovuje podmínce. I zde platí, že kategorizované pohledy jsou rychlejší.

Využití třídy NotesViewEntryCollection je ještě pomalejší a zde se pravidlo rychlejšího kategorizovaného pohledu obrací – tříděný je rychlejší. Všechny metody jsou ovšem přibližně o 250% pomalejší než vítězové.

Metoda FTSearch třídy NotesView je o 100% pomalejší než stejná metoda třídy NotesDatabase. Ale to ještě není tak špatné – metoda Search třídy NotesDatabase je o dalších 100% pomalejší – což je přibližně 8x pomalejší než nejrychlejší přístup.

Jednoznačným rekordmanem je procházení kolekce pomocí metody GetNthDocument – trvá přibližně 20x déle než nejrychlejší kombinace.

A další zajímavé výsledky?

Načtení hodnoty z dokumentu je nejrychlejší pomocí NotesDocument.ColumnValues, o něco pomalejší je NotesDocument.GetItemValue a nejpomalejší je ten nejobvyklejší zápis – NotesDocument.ItemName. Rozdíly ovšem nejsou velké, největší rozdíl je mezi posledními dvěmi, přibližně 5%.

Záleží také na správně zapsaném názvu pole – pokud se dodrží správná velikost písmen, tak ušetříte přibližně – celé jedno promile.

Pokud si při procházení dokumentů necháte něco vypisovat do stavové lišty, tak počítejte s velkým zpožděním – v testu vyšlo zpoždění přibližně 500%.

Jednu věc jsem před čtením článku netušil – že pozitivní testy jsou výrazně rychlejší než ty negativní. Rozdíl porovnání i = 1 a i <> 1 činí takřka 50%. Využití kouzelného slůvka Not je ještě o kousek pomalejší.

Naproti tomu nastavování vlastnosti AutoUpdate třídy NotesView nemá takřka žádný vliv – ten se počítá v desetinách promile. Musíte tedy hledat jiné důvody, proč tuto vlastnost použít – a ony existují.

Závěr? Vzhůru ke strojům a přepsat skripty. A všichni, kteří máte stejně jako já rádi cykly Do … vězte, že cyklus While je o kousek rychlejší. Všichni, kteří chcete být ještě lepší, vězte, že pomocí C API můžete být ještě rychlejší. Ale to už je zase jiná kapitola.

Napiš komentář, díky!

Africa – Wild at Heart

Today we had been at the exhibition titled Africa – Wild at Heart. It was prepared in cooperation with National Geographic and is located in Karolinum, one of our famous building in Prague, which is used for Charles University as well. It will be there till 3th September, and because it’s also possible to visit the undeground of Karolinum (which is normally closed) it’s one of the best moment to visit Prague at this time.

Krteček

Continue reading

Napiš komentář, díky!

Lotus Café pro klienty

Poté co jsem v neděli mluvil s jedním z IBMáků a posteskl si, že nějak nepořádají žádné akce, tak jsem se dnes dočkal milého překvapení. Ve čtvrtek 24. srpna od 13 do 16 hodin chystá IBM akci, na které klientům představí novinky a pokecá o všem co je zajímá. Další termíny jsou naplánované i v Brně a Ostravě.

Teď jenom čekám, kdy se to objeví i na jiných stránkách než jsou stránky Petra Kunce 🙂

Napiš komentář, díky!

Co mě zaujalo

V poslední době jsem hledal další zajímavé stránky o Lotus Notes, které by člověk mohl sledovat. A nalezl jsem hned dvě adresy se spoustou odkazů – DominoBlog.comRHS.com. RHS navíc má i stránku, na které se slučují všechny možné zdroje zveřejňující SnTT – aneb zajímavé tipy a triky, které zveřejňují bloggeři (ne)pravidelně každý čtvrtek.

A při té příležitosti musím souhlasit s Declanem, který píše jak málo lidé vědí o nejrůznějších zdrojích o LN, které jsou na internetu dostupné. A občas mám pocit, že jich je opravdu dost (i když kdyby jich bylo více, tak bych se nezlobil :))

Continue reading

Napiš komentář, díky!

Instalace faxových karet

Jestli jsou oblasti, kde má člověk pocit, že je třeba čarovat, tak je to (dle mého) instalace faxových karet. V poslední době jsem přišel do styku s dvěmi z nich a rozdíl byl diametrální.

První kartou byla karta Brooktrout TR1034. Její instalace byla takřka bezproblémová, na webu Extracommu, který dodává faxový software ExtraFax, člověk najde potřebné ovladače včetně návodu. Jediný problém, který zbývá, je nastavit kartu správně na Point-To-Point režim, protože automatika to správně nerozpozná. Ale jinak to jede takřka samo.

Druhou kartou je karta od Dialogicu – Dialogic BRI/2VFN. A s tou si člověk vyhraje. Nejdříve stráví den hledáním ovladačů (dnes možná i více, protože odkazy, které ještě před čtrnácti dny platily už neplatí), potom chvíli jejich stahováním (mají cca 350MB, service pack pak dalších 100MB), pak chvíli přemýšlí co vše zaškrtat při instalaci, až si přečte dokumentaci a zaškrtá pouze nejnutnější minimum. Takže vše vypadá jakože funguje, akorát to nevytáčí čísla ani nepřijímá hovory. Správně je nakonec nechat předvolené volby, přidat ISDN ovladače, BRI, GDK a i to, co mu pak doporučí instalační program.

A pak už zbývá jenom zábava s konfigurací – nastavit protokol na ALAW (místo předvoleného MU-LAW). Potom hlavně nenastavovat zemi – European Union není tou správnou volnou, musí zůstat Amerika. Pak ještě nastavit GDK, to je celkem bez problémů, ale člověk musí naimportovat konfigurační soubory, jinak mu to padá.

Po tom všem, člověk může jenom doufat, že to bude nějak fungovat. Protože když to funguje na jednom místě, tak to nemusí fungovat na jiném. Tomu se říká porod v IT provedení, kartám Brooktrout musím vyslovit největší pochvalu, protože tam je ta instalace opravdu snadná (když člověk alespoň trochu ví jak).

Napiš komentář, díky!