Hi Behdad,
I have now done the following changes in XeTeXLayoutInterface.cpp
(somewhere aboce the surrounding function, declar curtime and nxttime)
static time_t curtime;
static time_t nxttime;
int
layoutChars(XeTeXLayoutEngine engine, uint16_t chars[], int32_t offset, int32_t count, int32_t max,
bool rightToLeft)
{
...
curtime = time(NULL);
fprintf(stderr, "DEBUG [%d] hbFace=%d, segment_props.script=%d, segment_props.direction=%d, segment-props.language=%d, engine->nFeatures=%d, shaperList=%s\n",
curtime, hbFace, segment_props.script, segment_props.direction, segment_props.language, engine->nFeatures, engine->ShaperList);
shape_plan = hb_shape_plan_create_cached(hbFace, &segment_props, engine->features, engine->nFeatures, engine->ShaperList);nxttime = time(NULL);
fprintf(stderr, "DEBUG [%d] <%d> return from hb_shape_plan_create_cached\n", nxttime, nxttime-curtime);
....
I don't know if this is enough, but I got loads of lines of course,
and about 300 or more where there is
<1>
so a second of working time in hb_shape_plan_create_cached.
Concerning the other values:
hbFace: in total 5 different values, 4 at the beginning and then the same
segment_props.script switches between 0 and 1281455214, but most of the time
it is 128...
segment_props.direction is always 4
segment-props.language=44576992
engine->nFeatures=0
shaperList=<A8>1N (printed as %s)
I have uploaded the full output and the test file:
http://www.preining.info/xelatexslow-debug-output.log (21M)
http://www.preining.info/xelatexslow-debug-output.log.gz (98k)
http://www.preining.info/xelatexslow.tex (174k)
Hope that gives you any hint. Let me know if I can provide any
further data.
Thanks a lot
Norbert
------------------------------------------------------------------------
PREINING, Norbert http://www.preining.info
JAIST, Japan TeX Live & Debian Developer
GPG: 0x860CDC13 fp: F7D8 A928 26E3 16A1 9FA0 ACF0 6CAC A448 860C DC13
------------------------------------------------------------------------