我将在Javascript中存储大量字节值(最有可能超过一百万).如果我使用普通数字的正常数组,那将需要8 MB,因为数字存储为IEEE双精度数,但如果我可以将其存储为字节数,则它将只有1 MB.
我想避免因为显而易见的原因而浪费那么多空间.有没有办法将字节存储为字节而不是双精度?浏览器兼容性对我来说不是问题,只要它适用于Chrome.这是在HTML5中,如果这有所不同.
我有一个小字节数组(25K以下),我收到并解码为更大的消息信封的一部分.有时这是一个图像,当它是图像时,有时它是一个jpg.我没有字节数组以外的上下文信息,并且需要识别它是否是图像,以及图像是否为jpg类型.
是否有一些神奇的数字或魔术字节存在于开头,结尾或某些偏移处,我可以看一下来识别它?
我的代码示例如下(来自内存,而不是c/p):
byte[] messageBytesAfterDecode = retrieveBytesFromEnvelope();
if(null != messageBytesAfterDecode && messageBytesAfterDecode > 0){
if(areTheseBytesAJpeg(messageBytesAfterDecode)){
doSomethingWithAJpeg(messageBytesAfterDecode)
}else{
flagEnvelopeAsHavingBadContentInTheField();
}
}
Run Code Online (Sandbox Code Playgroud)
我真的需要做什么
areTheseBytesAJpeg(byte[] mBytes){}
Run Code Online (Sandbox Code Playgroud)
方法,甚至指向详细说明的规范的指针.我希望有一个非常快速的方法来做出这个决定,因为我真的不想把它们读成图像等.