我正在编写一个应用程序,旨在集中所有与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