簡體   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