-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Jonathan,

On 6/14/2009 1:01 PM, Jonathan Mast wrote:
> class BeanBag {
>       private static SomeBean someBean = null;
> 
>       public static synchronized getSomeBean() {
>              if (someBean == null) someBean = new SomeBean();
>              return someBean;
>      }
> }

You can get a significant performance improvement by doing this instead:

private static final SomeBean someBean = new SomeBean();

public static getSomeBean() {
  return someBean;
}

Of course, if you're going for delayed/lazy instantiation, you're not
going to get it, but you at least drop the penalty for synchronization.

> I have now numerous Servlets, JSPs and POJOs that use BeanBag to obtain
> singleton instances of my beans.  Its worked great for me.

Remember that object instantiation isn't really a big deal. If you have
complex object /initialization/, then it may be worth using a
"singleton" (virtually impossible in the webapp realm unless you are
very careful), flyweight, pool, or other pattern to re-use objects yet
still retain a high degree of throughput.

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAko2dsMACgkQ9CaO5/Lv0PD2/ACggkuH76invGEJOWIV2JArvNrG
W3oAmQEB3nzbXTsyE44NOTZftOfDjl7N
=xDwO
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to