[cups.development] ppdMarkOption/ppdConflicts performance improvement

Hidetomo Katsura Hidetomo.Katsura at efi.com
Fri Apr 27 22:46:10 PDT 2007


> I've been testing with larger PPD files, although I don't
> have a 100 option PPD to do testing with. The most I
> can find is a Gutenprint PPD with 75 options (which I
> *do* find unreasonable and unusable), but then they
> don't have any constraints in them...

sorry, i didn't know i'm supposed to discuss before i submit feature
requests. so i'm bringing the discussion here.

you mean you *do* find it unreasonably slow and unsable? i agree. and all our
customers agree. that's why it needs to be improved as much as possible.

75 options is nothing if it doesn't have constraints. again, please try a
100o/30c/5000c PPD file as an extreme reference (but it's a real world test
case for us).

> Anyways, we can't just test the last option marked, as
> a single ppdMarkOption() can affect multiple options.
> To make matters worse, constraints can map to
> individual choices or any selection other than False,
> None, or Unknown, so looking up only those
> constraints affecting a particular option will still
> require a linear search through the entire constraints
> array (constraints are supposed to be reciprocated, but
> aren't always...)

well, if it's not reciprocated, you should be able to reciprocate it
automatically when you build lists.

for example, if you have 100 options, and one option contraints 10 other
options, it's still almost 10x faster if you can skip constraints for 90 (or
89) other options. and the best case, if one option constraints only one
other option, it's almost 100x faster.

if you can keep a ppdMarkOption/ppdConflicts performance improvement feature
request open until it actually get fixed, we and our customers who are
suffering the extremely slow print dialog on mac really appreciate it.

katsura





More information about the cups-devel mailing list