Worklight:调用java静态方法与对象创建的性能

时间:2013-03-03 07:05:27

标签: java performance static adapter ibm-mobilefirst

我需要建议我将自定义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)
        };
    }

1 个答案:

答案 0 :(得分:2)

我相信您将静态方法与静态字段混淆。静态方法只是与对象的任何特定实例无关的代码 - 基本上任何未使用thissuper引用的方法都可以成为静态的候选方法,前提是它们不会覆盖另一种方法,并不打算被覆盖。静态方法没有任何额外的顾虑w.r.t.与“正常”方法相比,多线程。

另一方面,

静态字段根据定义在所有线程之间共享,对它们的访问应该像任何共享资源一样受到保护。 使用静态字段的任何方法,无论方法本身是否为静态,都应检查并发问题。

就性能而言,有传闻证据表明,与普通的虚拟方法相比,静态方法可以提供性能提升,但老实说,在分析器告诉我之前我不会担心它。过早优化是所有邪恶的根源......