字节或国际?哪一个通过套接字发送更快?

时间:2012-05-12 17:17:49

标签: java sockets

我正在编写一个应用程序,旨在集中在mysql数据库中生成的与项目管理相关的所有数据。该应用程序可分为3个部分/项目,如下所示:

  • 服务器层:

充当多个客户端之间的层,并保持与数据库(mysql)的连接。它侦听协议类,然后执行INSERT,UPDATE,DELETE,SELECT等操作。它是用普通的java 2SE而不是2EE编写的,因为它是一个非常简单的类,可以独立于服务器。

  • 通讯协议:

扩展java.util.EventObject并实现Serializable接口的类。它用于存储与客户端和服务器之间的通用协议相关的信息。这是实际上“通过套接字”传播的类,因为它的工作类似于协议。

  • 客户申请:

基本的gui。它是用javafx 2.1编写的,旨在提供一个漂亮而美观的界面来收集信息。

我的问题是,为了通过代码提高可读性,我在通信协议类上创建了一些静态最终字段,然后将其声明为int,我想知道使用byte是否可以改进代码,因为(再次)它会旅行通过套接字。我知道JVM会将等效空间分隔为字节,短路和整数变量,但是通过套接字发送数据时会出现这种情况吗?所以,在这种情况下,哪一个更好:

/**
 * 
 */
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;

还是使用字节?干杯

5 个答案:

答案 0 :(得分:6)

正如ColeJohnson所说,字节小于整数,因此技术上发送速度更快。但是,除非您一次发送100千或数百万这些值,否则的大小差异无关紧要

答案 1 :(得分:3)

字节较小,因此发送速度更快。但是,这些值都不适合一个字节......

答案 2 :(得分:1)

字节较小,因此它们行进得更快,但是对于许多应用程序来说,它们的处理速度比int慢。我认为这将取决于网络的瓶颈吞吐量和发送的字节数/ int数。

答案 3 :(得分:0)

int使用4个字节,因此字节最有效。

但是你必须手动将int转换为字节数组。

答案 4 :(得分:0)

答案是字节,我认为它也很灵活