【技术实现步骤摘要】
本专利技术涉及计算机网络领域,尤其涉及跨平台的字节序处理方法、装置和 字节码运行平台。
技术介绍
字节码(bytecode)不同于通常情况下经过编译器编译后输出的目标代码,意味着在一个平台生成的字节码可能在与生成该字节码的平台不同的平台上 运行,例如,对于嵌入式环境,为了节省嵌入式客户端执行解析、编译的时间 和所需的内存空间, 一种做法是将解析、编译从处理字节码的过程中抽离出来, 即,服务器预先对源代码进行解析和编译(称为预编译),客户端直接运行 服务器生成的字节码即可。由于服务器所在的平台可能与客户端所在的平台并 不相同,跨平台的字节码在处理过程中不可避免会遇到字节序(endianness) 的问题。所谓字节序,是专门针对多个字节的数据类型而言,通俗的定义是大于一 个字节的数据类型在内存中的存放顺序。按照数据的高低字节在内存中的相对 位置,可以简单地将字节序分为大端字节序(Big Endianness)和小端字节序 (Little Endianness )。大端字节序指的是高位字节排放在内存的低地址端,低 位字节排放在内存的高地址端,小端字节序刚好与之相反,低位字节排放在内 存的低地址端,高位字节排放在内存的高地址端。在现有技术中,当生成字节码的平台的字节序与运行该字节码的平台的字 节序不同时,例如,生成字节码的平台的字节序为大端字节序,运行该字节码 的平台的字节序为小端字节序,或者,生成字节码的平台的字节序为小端字节 序,运行该字节码的平台的字节序为大端字节序,如果生成的字节码直接在与 生成该字节码的平台不同的平台上运行,那么,这种处理方法显然只能 ...
【技术保护点】
一种跨平台的字节序处理方法,其特征在于,包括: 对表示多字节数据的字节码进行预处理,所述多字节数据包括第一类型数据和第二类型数据,所述第一类型数据为16位整型数据或32位整型数据,所述第二类型数据为64位整型数据、单精度浮点数据或双精 度浮点数据; 若所述表示多字节数据的字节码经过预处理后转换成表示单字节数据的字节码,则运行所述表示单字节数据的字节码,否则,按照预处理平台的字节序和运行平台的字节序相同与否调整所述多字节数据的字节序以还原所述多字节数据。
【技术特征摘要】
1、一种跨平台的字节序处理方法,其特征在于,包括对表示多字节数据的字节码进行预处理,所述多字节数据包括第一类型数据和第二类型数据,所述第一类型数据为16位整型数据或32位整型数据,所述第二类型数据为64位整型数据、单精度浮点数据或双精度浮点数据;若所述表示多字节数据的字节码经过预处理后转换成表示单字节数据的字节码,则运行所述表示单字节数据的字节码,否则,按照预处理平台的字节序和运行平台的字节序相同与否调整所述多字节数据的字节序以还原所述多字节数据。2、 如权利要求l所述跨平台的字节序处理方法,其特征在于,所述对所述表示多字节数据的字节码进行预处理包括 生成表示多字节数据的字节码;将所述表示第一类型数据的字节码分解为表示单字节数据的字节码。3、 如权利要求2所述跨平台的字节序处理方法,其特征在于,还包括 在所述表示第二类型数据的字节码中添加预处理平台的字节序,所述预处理平台为生成所述表示第二类型数据的字节码的平台。4、 如权利要求3所述跨平台的字节序处理方法,其特征在于,所述按照预 处理平台的字节序和运行平台的字节序相同与否调整所述多字节数据的字节 序以还原所述多字节数据包括将表示第二类型数据的字节码直接复制到运行平台的内存中; 读取所述预处理平台的字节序;比较所述运行平台的字节序和所述预处理平台的字节序; 若所述运行平台的字节序和所述预处理平台的字节序相同,保持所述第二类型数据的字节序,否则,调整所述第二类型数据的字节序以使所述第二类型数据的字节序与所述运行平台的字节序相同。5、 一种跨平台的字节序处理装置,包括编译平台和运行平台,其特征在 于,所述预处理平台和运行平台分立,其中,所述预处理平台包括预处理模块,用于对表示多字节数据的字节码进行预 处理,所述多字节数据包括第一类型数据和第二类型数据,第一类型数据为16位整型数据或32位整型数据,所述第二类型数据为64位整型数据、单精度浮点 数据或双精度浮点数据;所述运行平台包括执行模块,用于若所述表示多字节数据的字节码经过所 述预处理模块预处理后转换成表示单字节数据的字节码时,直接运行所述表示 单字节数据的字节码,否则,按照预处理平台的字节序和运行平台的字节序相 同与否调整所述多字节数据的字节序以还原所述多字节数据。6、 如权利要求5所述跨平台的字节序处理装置,其特征在于,所述预处理 模块包括字节码生成单元,用于生成所述表示多字节数据的字节码; 第一预处理单元,用于将所述字节码生成单元生成的表示第一类型数据的字节码分解为表示单字节数据的字节码第二预处理单元,用于在所述字节码生成单元生成的表示第二类型数据的字节码中添加预处理平台的字节序,所述预处理平台为生成所述表示第二类型数据的字节码的平台或编译平台。7、 如权利要求6所述跨平台的字节序处理装置,其特征在于,所述执行模 块包括第 一执行单元,用于运行所述第 一预处理单元分解后的单字节数据的字节码;第二执行单元,用于将表示第二类型数据的字节码直接复制到运行平台的 内存中后,读取所述第二预处理单元添加的预处理平台的字节序并比较所述运 行平台的字节序和所述预处理平台的字节序,在所述预处理平台的字节序和所 述运行平台的字节序相同时,保持所述第二类型数据的字节序,在所述预处理 平台的字节序和所述运行平台的字节序不同时,调整所述第二类型数据的字节 序以使所述第二类型数据的字节序与所述运行平台的字节序相同。8、 一种跨平台的字节序处理方法,其特征在于,包括 对表示多字节数据的字节码进行预处理以得到表示单字节数据的字节码,所述多字节数包括16位整型数据、32位整型数据、64位整形数据、单精度浮点 数据或双精度浮点数据;运行所述表示单字节数据的字节码。9、 如权利要求8所述跨平台的字节序处理方法,其特征在于,所述对表示多字节数据的字节码进行预处理以得到表示单字节数据的字节码具体为 生成所述表示多字节数据的字节码;将所述表示多字节数据的字节码分解为多个表示单字节数据的字节码。10、 一种跨平台的字节序处理装置,包括预处理平台和运行平台,其特征 在于,所述预处理平台和运行平台分立,其中,所述预处理平台包括预处理模块,用...
【专利技术属性】
技术研发人员:徐佳宏,程伯钦,朱吕亮,
申请(专利权)人:深圳市茁壮网络股份有限公司,
类型:发明
国别省市:94[]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。