A few performance tweaks

"James Davies" <[email protected]> Fri, 16 May 2008 14:29:03 +1000
Newsgroups gmane.comp.java.beanshell.devel
Message-ID <[email protected]>
------=_Part_8260_2656278.1210912143463
Content-Type: multipart/alternative; 
	boundary="----=_Part_8261_11006618.1210912143463"

------=_Part_8261_11006618.1210912143463
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hi. I'm currently using BeanShell in a project that runs a lot of concurrent
threads. I've found that there were a few performance bottlenecks calling
Class.forName

I fixed one typo in some caching code, and shuffled things around a little
bit to make things a little more efficient. This cleared up some deadlocks
resulting in a 4x speedup in my application (Due to the way I'm using
BeanShell; I doubt it would have as much of an affect in normal scenarios).


Attached is a diff file from the current subversion snapshot if you're
interested in merging the changes.

Regards,
  James.

------=_Part_8261_11006618.1210912143463
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hi. I&#39;m currently using BeanShell in a project that runs a lot of concurrent threads. I&#39;ve found that there were a few performance bottlenecks calling Class.forName<br><br>I fixed one typo in some caching code, and shuffled things around a little bit to make things a little more efficient. This cleared up some deadlocks resulting&nbsp;in a 4x speedup&nbsp;in&nbsp;my&nbsp;application (Due&nbsp;to&nbsp;the&nbsp;way I&#39;m using BeanShell; I doubt it&nbsp;would have&nbsp;as much&nbsp;of an&nbsp;affect&nbsp;in normal scenarios).&nbsp; <br>
<br>Attached is a diff file from the current subversion snapshot if you&#39;re interested in merging the changes.<br><br>Regards, <br>&nbsp;&nbsp;James. <br>

------=_Part_8261_11006618.1210912143463--

------=_Part_8260_2656278.1210912143463
Content-Type: application/octet-stream; name=bshdiff.diff
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fga9saxv
Content-Disposition: attachment; filename=bshdiff.diff

SW5kZXg6IEludGVycHJldGVyLmphdmEKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSW50ZXJwcmV0ZXIuamF2YQko
cmV2aXNpb24gNDIpCisrKyBJbnRlcnByZXRlci5qYXZhCSh3b3JraW5nIGNvcHkpCkBAIC0xODQs
OSArMTg0LDEyIEBACiAJCQlzZXRTdHJpY3RKYXZhKCBwYXJlbnQuZ2V0U3RyaWN0SmF2YSgpICk7
CiAJCXRoaXMuc291cmNlRmlsZUluZm8gPSBzb3VyY2VGaWxlSW5mbzsKIAotCQlCc2hDbGFzc01h
bmFnZXIgYmNtID0gQnNoQ2xhc3NNYW5hZ2VyLmNyZWF0ZUNsYXNzTWFuYWdlciggdGhpcyApOwor
CQkKIAkJaWYgKCBuYW1lc3BhY2UgPT0gbnVsbCApCisgICAgICAgIHsKKyAgICAgICAgICAgIEJz
aENsYXNzTWFuYWdlciBiY20gPSBCc2hDbGFzc01hbmFnZXIuY3JlYXRlQ2xhc3NNYW5hZ2VyKCB0
aGlzICk7CiAgICAgICAgIAl0aGlzLmdsb2JhbE5hbWVTcGFjZSA9IG5ldyBOYW1lU3BhY2UoIGJj
bSwgImdsb2JhbCIpOworICAgICAgICB9CiAJCWVsc2UKIAkJCXRoaXMuZ2xvYmFsTmFtZVNwYWNl
ID0gbmFtZXNwYWNlOwogCkBAIC0yNTIsNiArMjU1LDE1IEBACiAJCXNldHUoICJic2guZXZhbE9u
bHkiLCBQcmltaXRpdmUuVFJVRSApOwogICAgIH0KIAorICAgIC8qKiBDcmVhdGUgYSBuZXcgSW50
ZXJwcmV0ZXIgd2l0aCBhIHNwZWNpZmljIG5hbWVzcGFjZSAqLworICAgIHB1YmxpYyBJbnRlcnBy
ZXRlcihOYW1lU3BhY2UgbmFtZXNwYWNlKQorICAgIHsKKyAgICAgICAgdGhpcyggbmV3IFN0cmlu
Z1JlYWRlcigiIiksIAorICAgICAgICAgICAgU3lzdGVtLm91dCwgU3lzdGVtLmVyciwgZmFsc2Us
IG5hbWVzcGFjZSApOworICAgICAgICBldmFsT25seSA9IHRydWU7CisgICAgICAgIHNldHUoICJi
c2guZXZhbE9ubHkiLCBQcmltaXRpdmUuVFJVRSApOworICAgIH0KKwogCS8vIEVuZCBjb25zdHJ1
Y3RvcnMKIAogCS8qKgoKSW5kZXg6IENhcGFiaWxpdGllcy5qYXZhCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIENh
cGFiaWxpdGllcy5qYXZhCShyZXZpc2lvbiA0MikKKysrIENhcGFiaWxpdGllcy5qYXZhCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTksMTEgKzExOSwxNyBAQAogCQkJCQlCc2hDbGFzc01hbmFnZXIgcGxh
aW5DbGFzc0Zvck5hbWUoKSBvciBlcXVpdmFsZW50LgogCQkJCQlUaGlzIGNsYXNzIG11c3Qgbm90
IHRvdWNoIGFueSBvdGhlciBic2ggY2xhc3Nlcy4KIAkJCQkqLworICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIkNsYXNzRXhpc3RzOiAiICsgbmFt
ZSApOworICAgICAgICAgICAgICAgIAogCQkJCWMgPSBDbGFzcy5mb3JOYW1lKCBuYW1lICk7CiAJ
CQl9IGNhdGNoICggQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlICkgeyB9CiAKIAkJCWlmICggYyAh
PSBudWxsICkKLQkJCQljbGFzc2VzLnB1dChjLCJ1bnVzZWQiKTsKKyAgICAgICAgICAgIHsKKwkJ
CQkvL2NsYXNzZXMucHV0KGMsInVudXNlZCIpOworICAgICAgICAgICAgICAgIGNsYXNzZXMucHV0
KCBuYW1lLCAidW51c2VkIiApOyAvLyBqYW1lc2QgMjAwODA2MTYgLSBGaXggLSBDYWNoaW5nIHVz
aW5nIHRoZSBjb3JyZWN0IHZhcmlhYmxlCisgICAgICAgICAgICB9CiAJCX0KIAogCQlyZXR1cm4g
YyAhPSBudWxsOwpJbmRleDogTmFtZVNwYWNlLmphdmEKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTmFtZVNwYWNl
LmphdmEJKHJldmlzaW9uIDQyKQorKysgTmFtZVNwYWNlLmphdmEJKHdvcmtpbmcgY29weSkKQEAg
LTE2OCw3ICsxNjgsNyBAQAogICAgIHB1YmxpYyBOYW1lU3BhY2UoIE5hbWVTcGFjZSBwYXJlbnQs
IFN0cmluZyBuYW1lICkgCiAJewogCQkvLyBOb3RlOiBpbiB0aGlzIGNhc2UgcGFyZW50IG11c3Qg
aGF2ZSBhIGNsYXNzIG1hbmFnZXIuCi0JCXRoaXMoIHBhcmVudCwgbnVsbCwgbmFtZSApOworCQl0
aGlzKCBwYXJlbnQsIHBhcmVudC5nZXRDbGFzc01hbmFnZXIoKSwgbmFtZSApOwogCX0KIAogICAg
IHB1YmxpYyBOYW1lU3BhY2UoIEJzaENsYXNzTWFuYWdlciBjbGFzc01hbmFnZXIsIFN0cmluZyBu
YW1lICkgCkBAIC02NDIsNiArNjQyLDkgQEAKIC8vU3lzdGVtLm91dC5wcmludGxuKCJleHBlcmlt
ZW50OiBjcmVhdGluZyBjbGFzcyBtYW5hZ2VyIik7CiAJCWNsYXNzTWFuYWdlciA9IEJzaENsYXNz
TWFuYWdlci5jcmVhdGVDbGFzc01hbmFnZXIoIG51bGwvKmludGVycCovICk7CiAJCQorICAgICAg
ICAvLyBTdG9yZSB0aGUgbmV3bHkgY3JlYXRlZCBDbGFzcyBNYW5hZ2VyIHNvIHdlIGRvbid0IHJl
Y3JlYXRlIGl0IGV2ZXJ5IHRpbWUgdGhpcyBtZXRob2QgaXMgY2FsbGVkCisgICAgICAgIHRoaXMu
c2V0Q2xhc3NNYW5hZ2VyKCBjbGFzc01hbmFnZXIgKTsKKwogCQkvL0ludGVycHJldGVyLmRlYnVn
KCJObyBjbGFzcyBtYW5hZ2VyIG5hbWVzcGFjZToiICt0aGlzKTsKIAkJcmV0dXJuIGNsYXNzTWFu
YWdlcjsKIAl9Cg==
------=_Part_8260_2656278.1210912143463
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft 
Defy all challenges. Microsoft(R) Visual Studio 2008. 
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
------=_Part_8260_2656278.1210912143463
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Beanshell-developers mailing list
Beanshell-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/beanshell-developers

------=_Part_8260_2656278.1210912143463--