[xep-support] multi threaded access issue ?

From: Rob Stote <RStote@whitehilltech.com>
Date: Mon Feb 06 2006 - 07:14:14 PST

Hello all:

I am doing some performance tests with XEP 4.4. I am testing in in two
environments. The first is a hyper-threaded machine, the second on a dual
processor Xeon. Our code (see snippet below) is using the java API to access
XEP. We are producing PDF. My issue is the following: we have notice a
considerable slow down when using multi-threaded access in conjunction with
a Hyper Threaded, or Multiple CPU box. The slow down seems to disappear when
we disable Hyper-Threading. Once disabled we are able to use "multithreaded"
access and get faster throughput on the HT machine. However, on the 2CPU box
we have to set out thread count to 1 in order to not experience a slowdown
in production of the PDF. Any ideas as to why this is happening ?

Thanks in advance

Rob

+++++++ Test One +++++++++

Running 1000 documents through on the P4 3.2HT machine. The input is a .fo
document.

Hyperthreaded, 2 threads - 4.2 minutes
Hyperthreaded, 1 thread - 2.9 minutes

Non-hyperthreaded, 1 thread - 2.3 minutes
Non-hyperthreaded, 2 threads - 2.3minutes

Environment
WinXP
P4HT 3.2 GHz HT
1Gig RAM
XEP 4.4
Java 4.1.2_8

Notice the drastic increase in time with multithreaded access on a
hyper-threaded machine......

+++++++ Test Two +++++++++

Running 1000 documents through on the 2CPU XEON 3.4 machine. The input is a
.fo document.

2CPU, 4 threads - 9.1 minutes
2CPU, 1 thread - 2.4 minutes

Environment
WinXP
2CPU Xeon 3.2Ghz
2Gig RAM
XEP 4.4
Java 4.1.2_8

CODE Snippet:

    private ThreadLocal localFormatter = new ThreadLocal() {
        protected Object initialValue()
        {
            Properties options = new Properties();
            options.setProperty("CONFIG", xepRoot + "/xep.xml");
            options.setProperty("VALIDATE", "false");
            
            try {
                return new FormatterImpl(options, new
XepLoggerAdapter(log));
            }
            catch (ConfigurationException e) {
                log.error(e.getMessage(), e);
                throw new RuntimeException(e);
            }
        }
    };
    
    public void render(...)
    {
        Formatter formatter = (Formatter) localFormatter.get();
        
        String documentURI = baseDir + "/document";
        
            FOTarget target = new FOTarget(out, "PDF");
            
            try
            {
                    Result result = new SAXResult(
                        formatter.createContentHandler(documentURI,
target));
                    transformer.transform(saxSource, result);
            }
            finally
            {
                out.flush();
                out.close();
            }
    }

-------------------
(*) To unsubscribe, send a message with words 'unsubscribe xep-support'
in the body of the message to majordomo@renderx.com from the address
you are subscribed from.
(*) By using the Service, you expressly agree to these Terms of Service http://www.renderx.com/terms-of-service.html
Received on Mon Feb 6 07:39:57 2006

This archive was generated by hypermail 2.1.8 : Mon Feb 06 2006 - 07:39:58 PST