Return-Path: Delivered-To: apmail-xml-cocoon-dev-archive@xml.apache.org Received: (qmail 73720 invoked by uid 500); 29 Oct 2001 13:31:02 -0000 Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: cocoon-dev@xml.apache.org Delivered-To: mailing list cocoon-dev@xml.apache.org Received: (qmail 73708 invoked from network); 29 Oct 2001 13:31:02 -0000 Message-ID: <3BDD59DF.A4417141@levigo.de> Date: Mon, 29 Oct 2001 14:30:07 +0100 From: Joerg Henne X-Mailer: Mozilla 4.77 [en] (WinNT; U) X-Accept-Language: de,en,fr MIME-Version: 1.0 To: cocoon-dev@xml.apache.org Subject: Re: [C2]: Release Candidate 2 References: Content-Type: multipart/mixed; boundary="------------D4708C72D8BE7893F3E711BC" X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N --------------D4708C72D8BE7893F3E711BC Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Carsten, Carsten Ziegeler wrote: > > So anything missing here? it would probably be a good idea to apply the patch I posted a while ago (and attached to this message). The patch causes a siginificant performance improvement for most serializers. Joerg Henne --------------D4708C72D8BE7893F3E711BC Content-Type: message/rfc822 Content-Transfer-Encoding: 7bit Content-Disposition: inline Return-Path: X-Sieve: cmu-sieve 2.0 Return-Path: Received: from apache.org (daedalus.apache.org [64.125.133.20]) by mail.levigo.de (Postfix) with SMTP id A302A7ECE for ; Mon, 1 Oct 2001 20:48:48 +0200 (CEST) Received: (qmail 4508 invoked by uid 500); 1 Oct 2001 18:48:50 -0000 Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: cocoon-dev@xml.apache.org Delivered-To: mailing list cocoon-dev@xml.apache.org Received: (qmail 4497 invoked from network); 1 Oct 2001 18:48:49 -0000 Message-ID: <3BB8BA76.3A05C227@levigo.de> Date: Mon, 01 Oct 2001 20:48:22 +0200 From: Joerg Henne X-Mailer: Mozilla 4.77 [en] (WinNT; U) X-Accept-Language: de,en,fr MIME-Version: 1.0 To: cocoon-dev@xml.apache.org Subject: [C2] patch to serializers Content-Type: multipart/mixed; boundary="------------8EBDF2297095F53DDE33B7FE" X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N --------------8EBDF2297095F53DDE33B7FE Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi, the Cocoon2 serializers for text, XML and HTML currently work very inefficiently due to the fact that the underlying Xalan serializer writes every character in a seperate call to the output stream's write() method. In conjunction with a chunked transfer-encoding (the default for HTTP-1.1) this leads to a 6-fold increase in the volume of data that hits the wire (it's "1\r\n" plus the original character plus "\r\n" - just in case you wondered :-). The attached patch fixes the problem using a simple BufferedOutputStream. I've placed the buffer creation into AbstractTextSerializer and removed buffer creation code from AbstractSerializer. The buffer created in AbstractSerializer was actually never used, because all subclasses of AbstractSerializer either didn't use super.setOutputStream() or chose to ingore AbstractSerializer's "output" field after calling super.setOutputStream(). The fixed version works for me, but please review the patch carefully. Joerg Henne --------------8EBDF2297095F53DDE33B7FE Content-Type: application/x-unknown-content-type-diff_auto_file; name="patch.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="patch.diff" PyBzZXJpYWxpemF0aW9uLy5uYmF0dHJzDQpJbmRleDogc2VyaWFsaXphdGlvbi9BYnN0cmFj dFNlcmlhbGl6ZXIuamF2YQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9ob21lL2N2c3B1 YmxpYy94bWwtY29jb29uMi9zcmMvb3JnL2FwYWNoZS9jb2Nvb24vc2VyaWFsaXphdGlvbi9B YnN0cmFjdFNlcmlhbGl6ZXIuamF2YSx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNA0KZGlm ZiAtdSAtcjEuNCBBYnN0cmFjdFNlcmlhbGl6ZXIuamF2YQ0KLS0tIHNlcmlhbGl6YXRpb24v QWJzdHJhY3RTZXJpYWxpemVyLmphdmEJMjAwMS8wOC8yMCAxMzo1NToxNgkxLjQNCisrKyBz ZXJpYWxpemF0aW9uL0Fic3RyYWN0U2VyaWFsaXplci5qYXZhCTIwMDEvMTAvMDEgMTg6Mzc6 MDYNCkBAIC0xMSw3ICsxMSw2IEBADQogaW1wb3J0IG9yZy5hcGFjaGUuYXZhbG9uLmV4Y2Fs aWJ1ci5wb29sLlJlY3ljbGFibGU7DQogaW1wb3J0IG9yZy5hcGFjaGUuY29jb29uLnhtbC5B YnN0cmFjdFhNTFBpcGU7DQogDQotaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRPdXRwdXRTdHJl YW07DQogaW1wb3J0IGphdmEuaW8uT3V0cHV0U3RyZWFtOw0KIA0KIC8qKg0KQEAgLTMyLDcg KzMxLDcgQEANCiAgICAgICogU2V0IHRoZSA8Y29kZT5PdXRwdXRTdHJlYW08L2NvZGU+IHdo ZXJlIHRoZSBYTUwgc2hvdWxkIGJlIHNlcmlhbGl6ZWQuDQogICAgICAqLw0KICAgICBwdWJs aWMgdm9pZCBzZXRPdXRwdXRTdHJlYW0oT3V0cHV0U3RyZWFtIG91dCkgew0KLSAgICAgICAg dGhpcy5vdXRwdXQgPSBuZXcgQnVmZmVyZWRPdXRwdXRTdHJlYW0ob3V0KTsNCisgICAgICAg IHRoaXMub3V0cHV0ID0gb3V0Ow0KICAgICB9DQogDQogICAgIC8qKg0KSW5kZXg6IHNlcmlh bGl6YXRpb24vQWJzdHJhY3RUZXh0U2VyaWFsaXplci5qYXZhDQo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpS Q1MgZmlsZTogL2hvbWUvY3ZzcHVibGljL3htbC1jb2Nvb24yL3NyYy9vcmcvYXBhY2hlL2Nv Y29vbi9zZXJpYWxpemF0aW9uL0Fic3RyYWN0VGV4dFNlcmlhbGl6ZXIuamF2YSx2DQpyZXRy aWV2aW5nIHJldmlzaW9uIDEuNg0KZGlmZiAtdSAtcjEuNiBBYnN0cmFjdFRleHRTZXJpYWxp emVyLmphdmENCi0tLSBzZXJpYWxpemF0aW9uL0Fic3RyYWN0VGV4dFNlcmlhbGl6ZXIuamF2 YQkyMDAxLzA5LzE5IDE1OjUxOjQ5CTEuNg0KKysrIHNlcmlhbGl6YXRpb24vQWJzdHJhY3RU ZXh0U2VyaWFsaXplci5qYXZhCTIwMDEvMTAvMDEgMTg6Mzc6MDYNCkBAIC0yOSw2ICsyOSw4 IEBADQogaW1wb3J0IGphdmEudXRpbC5NYXA7DQogaW1wb3J0IGphdmEudXRpbC5IYXNoTWFw Ow0KIGltcG9ydCBqYXZhLnV0aWwuUHJvcGVydGllczsNCitpbXBvcnQgamF2YS5pby5PdXRw dXRTdHJlYW07DQoraW1wb3J0IGphdmEuaW8uQnVmZmVyZWRPdXRwdXRTdHJlYW07DQogDQog LyoqDQogICogQGF1dGhvciA8YSBocmVmPSJtYWlsdG86ZnVtYWdhbGxpQGV4b2ZmaWNlLmNv bSI+UGllcnBhb2xvIEZ1bWFnYWxsaTwvYT4NCkBAIC03Miw2ICs3NCwxNiBAQA0KICAgICBw cml2YXRlIGJvb2xlYW4gaGFzTWFwcGluZ3MgPSBmYWxzZTsNCiANCiAgICAgLyoqDQorICAg ICAqIFRoZSBkZWZhdWx0IG91dHB1dCBidWZmZXIgc2l6ZS4NCisgICAgICovDQorICAgIHBy aXZhdGUgc3RhdGljIGZpbmFsIGludCBERUZBVUxUX0JVRkZFUl9TSVpFID0gODE5MjsNCisg ICAgDQorICAgIC8qKg0KKyAgICAgKiBUaGUgb3V0cHV0IGJ1ZmZlciBzaXplIHRvIHVzZS4N CisgICAgICovDQorICAgIHByaXZhdGUgaW50IG91dHB1dEJ1ZmZlclNpemUgPSBERUZBVUxU X0JVRkZFUl9TSVpFOw0KKyAgICANCisgICAgLyoqDQogICAgICAqIEhlbHBlciBmb3IgVHJh bnNmb3JtZXJGYWN0b3J5Lg0KICAgICAgKi8NCiAgICAgcHJvdGVjdGVkIFNBWFRyYW5zZm9y bWVyRmFjdG9yeSBnZXRUcmFuc2Zvcm1lckZhY3RvcnkoKQ0KQEAgLTg0LDExICs5NiwzMSBA QA0KICAgICB9DQogDQogICAgIC8qKg0KKyAgICAgKiBTZXQgdGhlIDxjb2RlPk91dHB1dFN0 cmVhbTwvY29kZT4gd2hlcmUgdGhlIFhNTCBzaG91bGQgYmUgc2VyaWFsaXplZC4NCisgICAg ICovDQorICAgIHB1YmxpYyB2b2lkIHNldE91dHB1dFN0cmVhbShPdXRwdXRTdHJlYW0gb3V0 KSB7DQorICAgICAgICAvKg0KKyAgICAgICAgICogQWRkIGEgbGV2ZWwgb2YgYnVmZmVyaW5n IHRvIHRoZSBvdXRwdXQgc3RyZWFtLiBYYWxhbiBzZXJpYWxpemVzDQorICAgICAgICAgKiBl dmVyeSBjaGFyYWN0ZXIgaW5kaXZpZHVhbGx5LiBJbiBjb25qdW5jdGlvbiB3aXRoIGNodW5r ZWQNCisgICAgICAgICAqIHRyYW5zZmVyIGVuY29kaW5nIHRoaXMgd291bGQgb3RoZXJ3aXNl IGxlYWQgdG8gYSB3aG9wcGluZyA2LWZvbGQNCisgICAgICAgICAqIGluY3JlYXNlIG9mIGRh dGEgb24gdGhlIHdpcmUuDQorICAgICAgICAgKi8NCisgICAgICAgIEJ1ZmZlcmVkT3V0cHV0 U3RyZWFtIHN0cmVhbUJ1ZmZlciA9IG5ldyBCdWZmZXJlZE91dHB1dFN0cmVhbShvdXQsIERF RkFVTFRfQlVGRkVSX1NJWkUpOw0KKyAgICAgICAgc3VwZXIuc2V0T3V0cHV0U3RyZWFtKHN0 cmVhbUJ1ZmZlcik7DQorICAgIH0NCisNCisgICAgLyoqDQogICAgICAqIFNldCB0aGUgY29u ZmlndXJhdGlvbnMgZm9yIHRoaXMgc2VyaWFsaXplci4NCiAgICAgICovDQogICAgIHB1Ymxp YyB2b2lkIGNvbmZpZ3VyZShDb25maWd1cmF0aW9uIGNvbmYpDQogICAgICAgdGhyb3dzIENv bmZpZ3VyYXRpb25FeGNlcHRpb24gew0KIA0KKyAgICAgICAgLy8gY29uZmlndXJlIGJ1ZmZl ciBzaXplDQorICAgICAgICBDb25maWd1cmF0aW9uIGJzYyA9IGNvbmYuZ2V0Q2hpbGQoImJ1 ZmZlci1zaXplIiwgZmFsc2UpOw0KKyAgICAgICAgaWYobnVsbCAhPSBic2MpDQorICAgICAg ICAgIG91dHB1dEJ1ZmZlclNpemUgPSBjb25mLmdldFZhbHVlQXNJbnRlZ2VyKERFRkFVTFRf QlVGRkVSX1NJWkUpOw0KKyAgICAgICAgDQorICAgICAgICAvLyBjb25maWd1cmUgeGFsYW4N CiAgICAgICAgIENvbmZpZ3VyYXRpb24gY2RhdGFTZWN0aW9uRWxlbWVudHMgPSBjb25mLmdl dENoaWxkKCJjZGF0YS1zZWN0aW9uLWVsZW1lbnRzIik7DQogICAgICAgICBDb25maWd1cmF0 aW9uIGR0UHVibGljID0gY29uZi5nZXRDaGlsZCgiZG9jdHlwZS1wdWJsaWMiKTsNCiAgICAg ICAgIENvbmZpZ3VyYXRpb24gZHRTeXN0ZW0gPSBjb25mLmdldENoaWxkKCJkb2N0eXBlLXN5 c3RlbSIpOw0KSW5kZXg6IHNlcmlhbGl6YXRpb24vSFRNTFNlcmlhbGl6ZXIuamF2YQ0KPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQ0KUkNTIGZpbGU6IC9ob21lL2N2c3B1YmxpYy94bWwtY29jb29uMi9zcmMv b3JnL2FwYWNoZS9jb2Nvb24vc2VyaWFsaXphdGlvbi9IVE1MU2VyaWFsaXplci5qYXZhLHYN CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yDQpkaWZmIC11IC1yMS4yIEhUTUxTZXJpYWxpemVy LmphdmENCi0tLSBzZXJpYWxpemF0aW9uL0hUTUxTZXJpYWxpemVyLmphdmEJMjAwMS8wOC8y MCAxMzo1NToxNgkxLjINCisrKyBzZXJpYWxpemF0aW9uL0hUTUxTZXJpYWxpemVyLmphdmEJ MjAwMS8xMC8wMSAxODozNzowNw0KQEAgLTMyLDcgKzMyLDcgQEANCiAgICAgICAgICAgICBz dXBlci5zZXRPdXRwdXRTdHJlYW0ob3V0KTsNCiAgICAgICAgICAgICBoYW5kbGVyID0gZ2V0 VHJhbnNmb3JtZXJGYWN0b3J5KCkubmV3VHJhbnNmb3JtZXJIYW5kbGVyKCk7DQogICAgICAg ICAgICAgZm9ybWF0LnB1dChPdXRwdXRLZXlzLk1FVEhPRCwiaHRtbCIpOw0KLSAgICAgICAg ICAgIGhhbmRsZXIuc2V0UmVzdWx0KG5ldyBTdHJlYW1SZXN1bHQob3V0KSk7DQorICAgICAg ICAgICAgaGFuZGxlci5zZXRSZXN1bHQobmV3IFN0cmVhbVJlc3VsdCh0aGlzLm91dHB1dCkp Ow0KICAgICAgICAgICAgIGhhbmRsZXIuZ2V0VHJhbnNmb3JtZXIoKS5zZXRPdXRwdXRQcm9w ZXJ0aWVzKGZvcm1hdCk7DQogICAgICAgICAgICAgdGhpcy5zZXRDb250ZW50SGFuZGxlciho YW5kbGVyKTsNCiAgICAgICAgICAgICB0aGlzLnNldExleGljYWxIYW5kbGVyKGhhbmRsZXIp Ow0KSW5kZXg6IHNlcmlhbGl6YXRpb24vVGV4dFNlcmlhbGl6ZXIuamF2YQ0KPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KUkNTIGZpbGU6IC9ob21lL2N2c3B1YmxpYy94bWwtY29jb29uMi9zcmMvb3JnL2Fw YWNoZS9jb2Nvb24vc2VyaWFsaXphdGlvbi9UZXh0U2VyaWFsaXplci5qYXZhLHYNCnJldHJp ZXZpbmcgcmV2aXNpb24gMS4yDQpkaWZmIC11IC1yMS4yIFRleHRTZXJpYWxpemVyLmphdmEN Ci0tLSBzZXJpYWxpemF0aW9uL1RleHRTZXJpYWxpemVyLmphdmEJMjAwMS8wOC8yMCAxMzo1 NToxNgkxLjINCisrKyBzZXJpYWxpemF0aW9uL1RleHRTZXJpYWxpemVyLmphdmEJMjAwMS8x MC8wMSAxODozNzowNw0KQEAgLTMyLDcgKzMyLDcgQEANCiAgICAgICAgICAgICBzdXBlci5z ZXRPdXRwdXRTdHJlYW0ob3V0KTsNCiAgICAgICAgICAgICBoYW5kbGVyID0gZ2V0VHJhbnNm b3JtZXJGYWN0b3J5KCkubmV3VHJhbnNmb3JtZXJIYW5kbGVyKCk7DQogICAgICAgICAgICAg Zm9ybWF0LnB1dChPdXRwdXRLZXlzLk1FVEhPRCwidGV4dCIpOw0KLSAgICAgICAgICAgIGhh bmRsZXIuc2V0UmVzdWx0KG5ldyBTdHJlYW1SZXN1bHQob3V0KSk7DQorICAgICAgICAgICAg aGFuZGxlci5zZXRSZXN1bHQobmV3IFN0cmVhbVJlc3VsdCh0aGlzLm91dHB1dCkpOw0KICAg ICAgICAgICAgIGhhbmRsZXIuZ2V0VHJhbnNmb3JtZXIoKS5zZXRPdXRwdXRQcm9wZXJ0aWVz KGZvcm1hdCk7DQogICAgICAgICAgICAgdGhpcy5zZXRDb250ZW50SGFuZGxlcihoYW5kbGVy KTsNCiAgICAgICAgICAgICB0aGlzLnNldExleGljYWxIYW5kbGVyKGhhbmRsZXIpOw0KSW5k ZXg6IHNlcmlhbGl6YXRpb24vWE1MU2VyaWFsaXplci5qYXZhDQo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpS Q1MgZmlsZTogL2hvbWUvY3ZzcHVibGljL3htbC1jb2Nvb24yL3NyYy9vcmcvYXBhY2hlL2Nv Y29vbi9zZXJpYWxpemF0aW9uL1hNTFNlcmlhbGl6ZXIuamF2YSx2DQpyZXRyaWV2aW5nIHJl dmlzaW9uIDEuMg0KZGlmZiAtdSAtcjEuMiBYTUxTZXJpYWxpemVyLmphdmENCi0tLSBzZXJp YWxpemF0aW9uL1hNTFNlcmlhbGl6ZXIuamF2YQkyMDAxLzA4LzIwIDEzOjU1OjE2CTEuMg0K KysrIHNlcmlhbGl6YXRpb24vWE1MU2VyaWFsaXplci5qYXZhCTIwMDEvMTAvMDEgMTg6Mzc6 MDcNCkBAIC0zMiw3ICszMiw3IEBADQogICAgICAgICAgICAgc3VwZXIuc2V0T3V0cHV0U3Ry ZWFtKG91dCk7DQogICAgICAgICAgICAgdGhpcy5oYW5kbGVyID0gZ2V0VHJhbnNmb3JtZXJG YWN0b3J5KCkubmV3VHJhbnNmb3JtZXJIYW5kbGVyKCk7DQogICAgICAgICAgICAgZm9ybWF0 LnB1dChPdXRwdXRLZXlzLk1FVEhPRCwieG1sIik7DQotICAgICAgICAgICAgaGFuZGxlci5z ZXRSZXN1bHQobmV3IFN0cmVhbVJlc3VsdChvdXQpKTsNCisgICAgICAgICAgICBoYW5kbGVy LnNldFJlc3VsdChuZXcgU3RyZWFtUmVzdWx0KHRoaXMub3V0cHV0KSk7DQogICAgICAgICAg ICAgaGFuZGxlci5nZXRUcmFuc2Zvcm1lcigpLnNldE91dHB1dFByb3BlcnRpZXMoZm9ybWF0 KTsNCiAgICAgICAgICAgICB0aGlzLnNldENvbnRlbnRIYW5kbGVyKGhhbmRsZXIpOw0KICAg ICAgICAgICAgIHRoaXMuc2V0TGV4aWNhbEhhbmRsZXIoaGFuZGxlcik7DQo= --------------8EBDF2297095F53DDE33B7FE Content-Type: text/plain; charset=us-ascii --------------------------------------------------------------------- To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org For additional commands, email: cocoon-dev-help@xml.apache.org --------------8EBDF2297095F53DDE33B7FE-- --------------D4708C72D8BE7893F3E711BC Content-Type: text/plain; charset=us-ascii --------------------------------------------------------------------- To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org For additional commands, email: cocoon-dev-help@xml.apache.org --------------D4708C72D8BE7893F3E711BC--