From: Andre W. <wo...@us...> - 2005-07-20 10:50:46
|
Hi, On 20.07.05, Eugene M. Minkovskii wrote: > I do some small time-test with your pux programm: > *************** time test begin ******************** > from pyx import * > > import timeit > > s=''' > c = canvas.canvas() > c.text(0, 0, "Hello, world!") > c.stroke(path.line(0, 0, 2, 0)) > ''' > t = timeit.Timer(s,"from pyx import canvas, path") > print "%5.2f --- initialization" % t.timeit(number=100) > > c = canvas.canvas() > c.stroke(path.line(0, 0, 2, 0)) > > t = timeit.Timer('c.writeEPSfile("hello")',"from __main__ import c") > print "%5.2f --- writing EPS file without text" % t.timeit(number=100) > t = timeit.Timer('c.writePDFfile("hello")',"from __main__ import c") > print "%5.2f --- writing PDF file without text" % t.timeit(number=100) > > c = canvas.canvas() > c.text(0, 0, "Hello, world!") > c.stroke(path.line(0, 0, 2, 0)) > > t = timeit.Timer('c.writeEPSfile("hello")',"from __main__ import c") > print "%5.2f --- writing EPS file with text" % t.timeit(number=100) > t = timeit.Timer('c.writePDFfile("hello")',"from __main__ import c") > print "%5.2f --- writing PDF file with text" % t.timeit(number=100) > *************** time test output ******************* > 0.98 --- initialization > 0.16 --- writing EPS file without text > 0.29 --- writing PDF file without text > 26.95 --- writing EPS file with text > 8.20 --- writing PDF file with text > *************** time test edn ********************** > > We see: your method of text-inclusion very good, because you > produse good platform-independend PostScript. But this method > very slow. Parts of the slowlyness you've observed is very likely due to a code reorganisation we did for 0.8. We found out after that release, that this creates a huge number of file path lookups which are very slow, when you do not build the kpathsea extension module. I've submitted a patch to reduce the time consuming system calls. Expect this to be released within an 0.8.1 during the next days. But still, as long as you do not build the kpathsea extension module, you'll always need to perform system calls for finding files in your tex directory structure. Beside that: if you see such a long times on a very simple example like a "hello, world!", its very likely that you can optimize your kpathsearch system quite a bit. How long takes a command like "kpsewhich cmr10.pfb" on your system? This shouldn't take too long (much, much less than a second). Building the kpathsea c extension module will still be much better (and is not affected by the code reorganization misbehaviour in 0.8). > Some time I don't need platform-independend > PostScript, But I need very fast method of file generation. For > example: in dinamic web-script I produce automatically generated > picture, and piping it through ghostscript to produce png. But this will not really become fast either. I mean, fast. It just will be less slow. For usual things the speed of PyX is ok, but it's not really fast. While at some points we already take care of execution speed, this is not a major issue at the moment as long as PyX is not unusable slow ... > This problem I solute by following method: > I use only standart fonts (Times-Roman, Courier, Helvetica), I > don't include this font into PostScript. If I need to use some > 8-bit encodings (koi8-r for example), I generate on-the-fly from > python Encoding-Vector for postscript. After that text may be > typing as is in row native 8-bit encoding > > I attach sample of my code at the end of this letter. As you can > see, my method can working without TeX. Of cource I can't type > hardly mathematical formuls, but simple text under diagram axis > can. This looks very familiar to me. I implemented similar things in a so called simpletext canvasitem some time ago. But you can build those things on top of PyX without touchin PyX internals. Just create your own canvas items and do whatever you want ... BTW: for the future its very likely, that we'll gain a TeX-less text output technique by further working on the separation of the font handling. We might even gain a replacement for the texrunner by that. This is certainly possible but it'll take time ... André -- by _ _ _ Dr. André Wobst / \ \ / ) wo...@us..., http://www.wobsta.de/ / _ \ \/\/ / PyX - High quality PostScript figures with Python & TeX (_/ \_)_/\_/ visit http://pyx.sourceforge.net/ |