我正在編寫一個應用程序,旨在集中所有與mysql數據庫中生成的項目管理相關的數據。字節或Int?通過套接字發送哪一個更快?
- 服務器層:
充當多個客戶端之間的層和不斷連接到數據庫(MySQL的),應用程序可以在3份/項目,因爲它如下劃分。它監聽協議類,然後執行像INSERT,UPDATE,DELETE,SELECT等操作。它是用普通的java 2SE而不是2EE編寫的,因爲它是一個非常簡單的類,可以獨立於服務器。
- 通訊協議:
延伸java.util.EventObject中和實現Serializable接口的類。它用於存儲與客戶端和服務器之間的公共協議相關的信息。這是實際「穿過」套接字的類,因爲它的工作類似協議。
- 客戶端應用程序:
Basicaly的GUI。它是用javafx 2.1編寫的,旨在提供一個漂亮而美觀的界面來收集信息。
我的問題是,爲了提高可讀性通過代碼我已經在通信協議類上創建了一些靜態最終字段,然後聲明爲int,我想知道是否使用字節可以改善代碼,因爲(再次)它會通過插座旅行。我知道JVM會將等價空間分隔爲字節,短語和ints變量,但是在通過套接字發送數據時會發生這種情況嗎?因此,在這種情況下,哪一個更好:
/**
*
*/
private static final long serialVersionUID = 7530533341506425480L;
public static final int CLIENT_DISCONNECTED = -1;
public static final int NEW_INFO_INSERTED = 0;
public static final int SHUTDOWN_ORDER = 1;
public static final int INFO_NOT_INSERTED = 100;
public static final int CLIENT_CONNECT = 10000;
public static final int CLIENT_LOGIN = 10001;
public static final int SERVER_LOGIN_OK = 20001;
public static final int SERVER_LOGIN_FAILED = 20002;
public static final int SERVER_SAYS = 20003;
public static final int SERVER_IMAGE_INSERTED = 20004;
public final static int DB_WORKERS = 1001;
public final static int DB_PROJECTS = 1002;
public final static int DB_SECTORS = 1003;
public final static int DB_ACTIVITIES = 1004;
public final static int DB_SUBACTIVITIES = 1005;
public final static int DB_INSERTION = 1006;
public final static int DB_REL_COST = 1007;
public final static int DB_FUNCTIONS = 1008;
public final static int DB_INSERTION_ID = 1009;
public final static int DB_INSERTION_IMG = 1010;
public final static int DB_WORKER_INSERTED = 4010;
public final static int DB_ACTIVITY_INSERTED = 4011;
public final static int DB_SECTOR_INSERTED = 4012;
public final static int DB_SUBACTIVITY_INSERTED = 4013;
public final static int DB_FUNCTION_INSERTED = 4014;
public final static int DB_IMAGE_INSERTED = 4015;
public final static int DB_PARENTS_INSERTED = 4016;
或使用字節?歡呼聲
評估這個問題的答案,首先至少40個字節的TCP報文段的開銷,如果您要發送單可以開始發揮作用時,應開銷考慮消息而不是流,以及序列化開銷。在這種情況下,您不太可能注意到四個字節的空間開銷,而不是一個消息類型標誌的開銷。 – EJP