Zajímavé.. věděl jsem že existují další kódování, ale zatím všude kde se používá ASN.1 jsem v praxi viděl *POUZE* DER (ldap, snmp, pkcs), takže každý BOOL se nafukuje na 3 bajty, což pomalu tomu XML začíná konkurovat. Můžete někdo uvést příklad, kdy se de facto skutečně používají efektivnější kódování?
Dokonce jsem se setkal s tvrzením v učebnici, že ASN.1 == BER/DER/CER. Dřív to tak bylo a některý věci v syntaxi tomu i odpovídají. Třeba IMPLICIT/EXPLICIT/AUTOMATIC TAGGING má samozřejmě význam jen tam, kde se vůbec taguje, tedy v BER a odvozených.
Kde se používá PER, nevím. Ono to vypadá zběsile neefektivně co do času na zpracování, ale protože parser vlastně vytváří kód, který se pak kompiluje a linkuje, může spoustu věcí prostě hodit do maker a maskovat. A bitové operace jsou rychlé snad na všech procesorech a kompilátory je zvládají dobře překládat, takže výsledek je pozoruhodně rychlý. Pokud si s tím dal autor práci.
Mluvím o C.
a samozřejmě jsem zapomněl dodat, že data oproti PERu nejde zdrcnout bez další komprese. PER nekomprimuje, jen co nejúsporněji naskládá. I když, tady se asi ani kompresní programy moc chytat nebudou.