繁体   English   中英

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

[英]Worklight: Performance of calling java static method vs object creation

我需要建议还是将自定义java方法设置为静态方法,还是通过Adapter通过java对象进行访问?

我的情况是:成千上万的用户正在进行交易,每个用户都一次又一次地访问相同的方法,而只是更改一些特定于该用户或交易的值。

现在,如果我将它们设为静态方法,那么它将对用户造成问题,因为我们知道适配器调用是异步的。...因此,如果多个用户同时调用同一方法,则将导致将不同的值返回给彼此?

或者,如果我通过首先声明该类对象然后访问方法,提供参数来访问所有自定义Java方法,那么以这种方式,当多个用户同时访问同一方法时,他们将获得正确/相关的数据?

从性能的角度来看,哪种方法是好的,而静态方法却给用户带来了错误的数据.....一个用户的数据给了另一个用户,其他用户的数据给了另一个人。

感谢Abdul Ahad

------------我的代码就像-

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)
        };
    }

我相信您正在将静态方法与静态字段混淆。 静态方法只是与对象的任何特定实例都没有关联的代码-基本上,任何不使用thissuper引用的方法都可以成为静态方法的候选方法,前提是它们不会覆盖另一种方法且不希望成为静态方法。覆盖。 与“普通”方法相比,静态方法与多线程无关。

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

就性能而言,有轶事证据表明,与普通的虚拟方法相比,静态方法可能会提高性能,但是老实说,在探查器告诉我之前,我不会担心它。 过早的优化是万恶之源...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM