2011-06-05 47 views
0

嘿,我需要通過RPC發送一個對象,我需要包含一個2類型或布爾值的枚舉。枚舉的可讀性更高,可以理解,但布爾值可能會發送更少的數據。我想提高效率。GWT RPC - 枚舉或布爾值

此外,我有點不熟悉所有通過RPC調用傳遞的信息。如果我要使用枚舉,那麼將枚舉的聲明包含在正在傳輸對象的實際類中是不是有害的,還是應該將它放在單獨的文件中?

+1

這是一個微型優化,我認真地懷疑你會注意到一種方式或其他。如果它更具描述性,或者您期望需要第三個選項,請使用枚舉。 – 2011-06-06 01:14:30

+1

「不成熟的優化是萬惡之源」 – mabn 2011-06-06 02:01:05

回答

3

我不擔心請求的效率。即使您發送了幾個枚舉,http頭也比gwt請求大得多。這是一個在我們的項目中(稍微匿名)的rpc調用(枚舉是粗體):

7 | 0 | 6 | http:// localhost:8080/project/webapp/| 71407A43DECFAED2BC6095696471246F | com.ourCompanyName.common。 service.FooClassObjectService | getNewElementFromParent | com.ourCompanyName.common.types.ElementTypeEnum/1588786841 | J | 1 | 2 | 3 | 4 | 2 | 5 | 6 | 5 | 2 | BjH3 |

正如你所看到的,這只是請求的一小部分。 rpc的url /路徑要大得多。

我建議在一個單獨的類中定義枚舉。根據您的項目設置方式,用於參數的枚舉必須在可供前端和後端訪問的部分代碼中定義。 (我們有一個名爲common的項目,它定義了rpc's,使用的枚舉,用於傳輸的數據模型,以及使用公共項目的所有gwt代碼的不同項目,但不包括數據庫項目和服務項目等,它們是java只有。)

+0

謝謝,我真的很感謝答案。我假設所有在這裏轉移的是枚舉?布爾值不會更小嗎? – spierce7 2011-06-06 13:02:11

+1

是的,當然它可能只有一個字符。但與http請求標頭的數百個字符(樣本請求中的約700個字符)相比,enum(或任何其他對象)所需的額外40-50個字符可以忽略不計。正如其他評論者所說,這是一個微觀優化。您應該擔心減少請求的數量,而不是最小化每個請求的大小。 :) – 2011-06-07 06:52:09