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'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<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 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). <br> <br>Attached is a diff file from the current subversion snapshot if you're interested in merging the changes.<br><br>Regards, <br> 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--