Return-Path: Mailing-List: contact general-help@xml.apache.org; run by ezmlm Delivered-To: mailing list general@xml.apache.org Received: (qmail 87989 invoked from network); 29 Jun 2000 21:37:39 -0000 Received: from ns1.valicert.com (HELO ext-mail.valicert.com) (63.65.221.10) by locus.apache.org with SMTP; 29 Jun 2000 21:37:39 -0000 Received: from CONVERSION-DAEMON.ext-mail.valicert.com by ext-mail.valicert.com (PMDF V6.0-24 #45901) id <0FWX00E01QQOMV@ext-mail.valicert.com> for general@xml.apache.org; Thu, 29 Jun 2000 14:37:36 -0700 (PDT) Received: from seine.valicert.com ([192.168.2.23]) by ext-mail.valicert.com (PMDF V6.0-24 #45901) with ESMTP id <0FWX00EAHQQO9I@ext-mail.valicert.com> for general@xml.apache.org; Thu, 29 Jun 2000 14:37:36 -0700 (PDT) Received: by seine.valicert.com with Internet Mail Service (5.5.2650.21) id ; Thu, 29 Jun 2000 14:30:37 -0700 Content-return: allowed Date: Thu, 29 Jun 2000 14:30:26 -0700 From: Kevin Regan Subject: RE: Performance and thread safety in Xerces To: general@xml.apache.org Message-id: <27FF4FAEA8CDD211B97E00902745CBE2015B7F32@seine.valicert.com> MIME-version: 1.0 MIME-version: 1.0 X-MIMEOLE: Produced By Microsoft MimeOLE V5.00.2919.6600 X-Mailer: Internet Mail Service (5.5.2650.21) Content-type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=SHA1; boundary="----=_NextPart_000_0016_01BFE1D8.C5F904C0" X-Spam-Rating: locus.apache.org 1.6.2 0/1000/N ------=_NextPart_000_0016_01BFE1D8.C5F904C0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit I don't see any problem with requiring a separate parser per thread as long as those parsers do not somehow interact with each other behind the scenes in a way that can not be synchronized by the user... Sincerely, Kevin Regan kevinr@valicert.com -----Original Message----- From: Mike Pogue [mailto:mpogue@apache.org] Sent: Thursday, June 29, 2000 2:38 PM To: general@xml.apache.org Subject: Re: Performance and thread safety in Xerces Hmmmm. The section on thread safety seems to have disappeared from the Xerces-J docs. There is a section in Xerces-C, however: http://xml.apache.org/xerces-c/faq-parse.html#faq-5 The bottom line: 1) Making the parser 100% thread safe would be a HUGE, GIGANTIC performance hit. (Did I say LARGE, BIG, MAJOR performance hit? That, too.) 2) Your application knows best what needs to be locked, and what doesn't. 3) Therefore, although you can run the parser, DOM, etc. from separate threads, we do NOT lock every method call on the parser, and each application is responsible for doing appropriate locking. Mike Dennis Thrysoe - Netnord A/S wrote: > > > Dennis Thrysoe - Netnord A/S wrote: > > > I my concrete case I have some code that calls > > ElementImpl.getAttribute() > > > about 320,000 times. This code takes a bit long, and creates a total of > > > almost 600,000 objects. > > > > I would imagine that your 600,000 objects come from the fact that > > the getAttribute method has to concatenate the children of the > > attribute node in order to return you a string. So save the > > memory you should use getAttributeNode and then query the > > children yourself. > > Using AttrImpl.getValue() has the same effect: Creating many objects. Which > otrher way is there to query the attributes value? > > > > The other thing relates to the thread safety of Xerces. I have > > two seperate > > > threads parsing two different XML files. Still I seem to get > > race conditions > > > on some arrays: > > > > Access to the parser and the DOM are *not* thread-safe. You still > > have to manage locks in order to ensure that multiple threads are > > > > 1) not using the parser at the same time > > 2) not editing a DOM document at the same time > > > > Now, if there are static members that are used in the code and > > access to them is not synchronized, then that could be causing > > the race condition problems that you are seeing. Let us know if > > you deduce the cause of your problem. > > Does plans exist for making the parser thread safe? In our project it is > quite important that several threads can each parse something different, or > the whole idea of concurrency is wasted. > > -dennis > > --------------------------------------------------------------------- > In case of troubles, e-mail: webmaster@xml.apache.org > To unsubscribe, e-mail: general-unsubscribe@xml.apache.org > For additional commands, e-mail: general-help@xml.apache.org --------------------------------------------------------------------- In case of troubles, e-mail: webmaster@xml.apache.org To unsubscribe, e-mail: general-unsubscribe@xml.apache.org For additional commands, e-mail: general-help@xml.apache.org ------=_NextPart_000_0016_01BFE1D8.C5F904C0 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIILTCCAy4w ggKXoAMCAQICEQDSdi6NFAw9fbKoJV2v7g11MA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVT MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFy eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05ODA1MTIwMDAwMDBaFw0wODA1MTIyMzU5NTla MIHMMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0 d29yazFGMEQGA1UECxM9d3d3LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L1JQQSBJbmNvcnAuIEJ5 IFJlZi4sTElBQi5MVEQoYyk5ODFIMEYGA1UEAxM/VmVyaVNpZ24gQ2xhc3MgMSBDQSBJbmRpdmlk dWFsIFN1YnNjcmliZXItUGVyc29uYSBOb3QgVmFsaWRhdGVkMIGfMA0GCSqGSIb3DQEBAQUAA4GN ADCBiQKBgQC7WkSKBBa7Vf0DeootlE8VeDa4DUqyb5xUv7zodyqdufBou5XZMUFweoFLuUgTVi3H COGEQqvAopKrRFyqQvCCDgLpL/vCO7u+yScKXbawNkIztW5UiE+HSr8Z2vkV6A+HthzjzMaajn9q JJLj/OBluqexfu/J2zdqyErICQbkmQIDAQABo3wwejARBglghkgBhvhCAQEEBAMCAQYwRwYDVR0g BEAwPjA8BgtghkgBhvhFAQcBATAtMCsGCCsGAQUFBwIBFh93d3cudmVyaXNpZ24uY29tL3JlcG9z aXRvcnkvUlBBMA8GA1UdEwQIMAYBAf8CAQAwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBAgUAA4GB AIi4Nzvd2pQ3AK2qn+GBAXEekmptL/bxndPKZDjcG5gMB4ZbhRVqD7lJhaSV8Rd9Z7R/LSzdmkKe wz60jqrlCwbe8lYq+jPHvhnXU0zDvcjjF7WkSUJj7MKmFw9dWBpJPJBcVaNlIAD9GCDlX4KmsaiS xVhqwY0DPOvDzQWikK5uMIIE9zCCBGCgAwIBAgIQC+PHlZpFZSdqpif8TM5+bzANBgkqhkiG9w0B AQQFADCBzDEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0 IE5ldHdvcmsxRjBEBgNVBAsTPXd3dy52ZXJpc2lnbi5jb20vcmVwb3NpdG9yeS9SUEEgSW5jb3Jw LiBCeSBSZWYuLExJQUIuTFREKGMpOTgxSDBGBgNVBAMTP1ZlcmlTaWduIENsYXNzIDEgQ0EgSW5k aXZpZHVhbCBTdWJzY3JpYmVyLVBlcnNvbmEgTm90IFZhbGlkYXRlZDAeFw0wMDAzMTEwMDAwMDBa Fw0wMTAzMTEyMzU5NTlaMIIBEjEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl cmlTaWduIFRydXN0IE5ldHdvcmsxRjBEBgNVBAsTPXd3dy52ZXJpc2lnbi5jb20vcmVwb3NpdG9y eS9SUEEgSW5jb3JwLiBieSBSZWYuLExJQUIuTFREKGMpOTgxHjAcBgNVBAsTFVBlcnNvbmEgTm90 IFZhbGlkYXRlZDE0MDIGA1UECxMrRGlnaXRhbCBJRCBDbGFzcyAxIC0gTWljcm9zb2Z0IEZ1bGwg U2VydmljZTEUMBIGA1UEAxQLS2V2aW4gUmVnYW4xIjAgBgkqhkiG9w0BCQEWE2tldmluckB2YWxp Y2VydC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMwybaQzn64W9KQi7zH6WyiqjBa/ 2+ZtK4mux21ZQZJX8lzl70YC6kiAMbTdIq51RgAT8tU26G3z2YxSadbKp9RSaM6EQo1r2g57mKcJ 9MOycVB//GCciB98EsOln0bO2ewT/zQ5dAY+w6JuvW1214T2fVnoGt8tMuf4c64vODOhAgMBAAGj ggGPMIIBizAJBgNVHRMEAjAAMIGsBgNVHSAEgaQwgaEwgZ4GC2CGSAGG+EUBBwEBMIGOMCgGCCsG AQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2lnbi5jb20vQ1BTMGIGCCsGAQUFBwICMFYwFRYOVmVy aVNpZ24sIEluYy4wAwIBARo9VmVyaVNpZ24ncyBDUFMgaW5jb3JwLiBieSByZWZlcmVuY2UgbGlh Yi4gbHRkLiAoYyk5NyBWZXJpU2lnbjARBglghkgBhvhCAQEEBAMCB4AwgYYGCmCGSAGG+EUBBgME eBZ2ZDQ2NTJiZDYzZjIwNDcwMjkyOTg3NjNjOWQyZjI3NTA2OWM3MzU5YmVkMWIwNTlkYTc1YmM0 YmM5NzAxNzQ3ZGE1ZDNmMjE0MWJlYWRiMmJkMmU4OTIxZmE4NmJmNGQ3MTE0OTk4YTFiZTQ1ZmZm M2VhNDUwYzAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3JsLnZlcmlzaWduLmNvbS9jbGFzczEu Y3JsMA0GCSqGSIb3DQEBBAUAA4GBAC5MzNPucBpAlEkNA1AkrZHoSEG3FdzUYivxsIpJiyfukIHj CYm2CN+W6z9ciRwLjx4aIly164PhHj1jevO3H+yk89YBlEvZN05LSHmzVYeLxPz1neXUdNBFiCS3 wi+Pu8QZ+5MV4xiyTQimbShXMaIUrGC3eUvPEptyPozhWhQ8MYIDODCCAzQCAQEwgeEwgcwxFzAV BgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMUYw RAYDVQQLEz13d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvUlBBIEluY29ycC4gQnkgUmVmLixM SUFCLkxURChjKTk4MUgwRgYDVQQDEz9WZXJpU2lnbiBDbGFzcyAxIENBIEluZGl2aWR1YWwgU3Vi c2NyaWJlci1QZXJzb25hIE5vdCBWYWxpZGF0ZWQCEAvjx5WaRWUnaqYn/EzOfm8wCQYFKw4DAhoF AKCCAawwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDAwNjI5MjE0 NjE0WjAjBgkqhkiG9w0BCQQxFgQUG8sqZ4tAjmlF2cBmY3LY9hBtvzMwWAYJKoZIhvcNAQkPMUsw STAKBggqhkiG9w0DBzAOBggqhkiG9w0DAgICAIAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgwBwYF Kw4DAhowCgYIKoZIhvcNAgUwgfIGCSsGAQQBgjcQBDGB5DCB4TCBzDEXMBUGA1UEChMOVmVyaVNp Z24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxRjBEBgNVBAsTPXd3dy52 ZXJpc2lnbi5jb20vcmVwb3NpdG9yeS9SUEEgSW5jb3JwLiBCeSBSZWYuLExJQUIuTFREKGMpOTgx SDBGBgNVBAMTP1ZlcmlTaWduIENsYXNzIDEgQ0EgSW5kaXZpZHVhbCBTdWJzY3JpYmVyLVBlcnNv bmEgTm90IFZhbGlkYXRlZAIQC+PHlZpFZSdqpif8TM5+bzANBgkqhkiG9w0BAQEFAASBgErqpEyI eORk37BbLd9F/2vXBOLHXi1CnRiX3g7hnf1Prx9rGTR4qNc/m8cPRmG1qWF4Ng2q5QypeiEmXhjG W4MFWJig3Z8jtTBap14xsvS4PPPRp5wLXI0IWA7J89nadCih5I9XsB7TYy4spC+4QQ2oRyFA7Ro5 nZc5skQ3AGTtAAAAAAAA ------=_NextPart_000_0016_01BFE1D8.C5F904C0--