使用SecurityManager会有性能损失吗?
我需要以下内容:
我需要以下内容:
public class ExitHelper {
public ExitHelper() {
System.setSecurityManager(new ExitMonitorSecurityManager());
}
private static class ExitMonitorSecurityManager extends SecurityManager {
@Override
public void checkPermission(Permission perm) {}
@Override
public void checkPermission(Permission perm, Object context) {}
@Override
public void checkExit( final int status ) {
// this is the part I need and I don't care much about the performance issue of this method
}
}
这会对我的程序产生很大的影响吗?
该程序会打开许多文件,例如。如果我启用SecurityManager并在其中添加一些日志记录,可以看到这些方法被频繁调用。真的很多。因此,看起来放置SecurityManager意味着会进行大量的调用。它比默认的SecurityManager慢吗?(默认情况下是否有SecurityManager?)
这是如何工作的?哪个部分的程序将被检查权限以及检查频率?我对两个checkPermission(...)方法感到担忧。