Worklight:调用java静态方法与对象创建的性能
作者:互联网
我需要建议我将自定义java方法作为静态OR从适配器通过java对象访问?
我的方案是:成千上万的用户正在进行交易,每个用户再次访问相同的方法.再次,只是更改特定于该用户或事务的某些值.
现在,如果我将它们作为静态方法,那么它会给用户带来问题,因为我们知道适配器调用是异步的….所以如果多个用户同时调用相同的方法那么它会导致问题是返回不同的值彼此?
或者,如果我通过首先声明该类对象然后访问方法,提供参数来访问所有自定义java方法….这样,当多个用户同时访问相同的方法时,他们将获得正确/相关的数据?
从性能的角度来看哪种方法是好的并且静态方法方法会给用户带来错误的数据……一个用户的数据到另一个用户,而另一个用户的数据到另一个人.
谢谢
阿卜杜勒·阿哈德
————我的代码就像—
java code:
public static String getBalanceSummaries(String userAct){
String replyMsg="";
try {
replyMsg = getBalanceStatementfromMQ(userAct);
}catch(Exception e) {}
return replyMsg;
}
-----WL Adapter code:------
function showAllBalace(userActNo){
return{
result: com.my.package.getBalanceSummaries(userActNo)
};
}
解决方法:
我相信你将静态方法与静态字段混淆.静态方法只是与对象的任何特定实例无关的代码 – 基本上任何不使用此引用或超级引用的方法都可能是静态的候选方法,前提是它们不会覆盖另一个方法而不是覆盖.静态方法没有任何额外的顾虑w.r.t.与“正常”方法相比,多线程.
另一方面,静态字段按照定义在所有线程之间共享,对它们的访问应该像任何共享资源一样受到保护.无论方法本身是否为静态,任何使用静态字段的方法都应检查并发问题.
就性能而言,有传闻证据表明,与普通的虚拟方法相比,静态方法可以提供性能改进,但老实说,在分析器告诉我之前我不会担心它.过早优化是万恶之源……
标签:java,static,adapter,performance,ibm-mobilefirst 来源: https://codeday.me/bug/20190703/1371180.html