[cups.development] ppdMarkOption/ppdConflicts performanceimprovement

Michael Sweet mike at easysw.com
Sat Apr 28 05:14:12 PDT 2007


Hidetomo Katsura wrote:
> ...
> 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.

No, I mean that having that many options is unreasonable and
unusable, especially if those options are constrained in
complex ways.

When you have 100 options, it usually means you haven't
exposed/expressed the complexity of your driver efficiently.

> 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).

Please provide a link to such a PPD file.  I've never encountered
a file that big in the 13 years I've been doing printing software.

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

Yeah, that'll slow ppdOpen() down significantly, something we are
loath to do because it makes running a server with large numbers
of printers infeasible (and that is a more common configuration
than a single driver with 100 options).

> 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* we built a dependency graph (tree) of the constraints, we
*might* be able to do partial updates efficiently.  However,
that level of optimization will not happen for CUPS 1.3 (we are
getting close to beta...)

> 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.

Your Mac users should file a bug report with Apple, since that is
the source of the performance problem, and they ultimately will
decide what will go into future Mac OS X releases, not us.  Improving
the performance of ppdConflicts/ppdMarkOption beyond the 5x
improvement I've implemented for 1.3 is simply not a priority.
Getting 1.3 out the door *is*.

-- 
______________________________________________________________________
Michael Sweet, Easy Software Products           mike at easysw dot com
Internet Printing and Publishing Software        http://www.easysw.com




More information about the cups mailing list