On 07/26/2012 08:21 AM, Valerie (Yu-Ching) Peng wrote:
Hi, Max or Xuelei,

Either of you have cycles to review the following 3 perf related fixes?
7107613: scalability bloker in javax.crypto.CryptoPermissions
7107616: scalability bloker in javax.crypto.JceSecurityManager
7185471: Avoid key expansion when AES cipher is re-init w/ the same key

Webrevs are at:
http://cr.openjdk.java.net/~valeriep/7107613

Looks fine.

http://cr.openjdk.java.net/~valeriep/7107616

You have

 122         CryptoPermissions appPerms = exemptCache.get(callerCodeBase);
 123         // Found result in cache
 124         if (appPerms != null) {
 125             if (appPerms == CACHE_NULL_MARK) appPerms = null;
 126         } else {
 127             synchronized (this.getClass()) {
 128                 appPerms = getAppPermissions(callerCodeBase);
 129                 exemptCache.putIfAbsent(callerCodeBase,
 130                     (appPerms == null? CACHE_NULL_MARK:appPerms));
 131             }
 132         }

This is not as optimized as before, that there is a chance getAppPermissions could be called twice, and this seems to make the synchronized block not worth syncing.

http://cr.openjdk.java.net/~valeriep/7185471

I haven't looked at this yet. Seems a lot of math there.

Thanks
Max


The changes are for JDK 8. May be backported to 7u later if necessary,
Thanks,
Valerie

Reply via email to