我尝试使用此功能将带有7 MB解码base64的图片转换为javascript中的十六进制
exports.toHex = function(s){
var str='';
for (var i = 0, l = s.length; i < l; i ++) {
var hex = Number(s.charCodeAt(i)).toString(16);
str+=(hex.length > 1 && hex || "0" + hex);
}
return str;
};
带有小字符串它可以工作,但是有一个大字符串它会给我这个错误
致命错误:CALL_AND_RETRY_LAST分配失败 - 处理完毕 存储器
&lt; ---最后几个GC ---&gt;
49456 ms:Scavenge 1398.9(1457.5) - &gt; 1398.9(1457.5)MB,7.1 / 0 ms(自上次GC以来的1步+ 6.4 ms)[分配失败] [增量标记延迟标记扫描]。 51290 ms:标记扫描 1398.9(1457.5) - &gt; 1398.9(1457.5)MB,1823.1 / 0 ms(自标记开始以来,步长为2步+ 8.4 ms,最大步长为6.4 ms)[最后的手段gc]。
53092ms:标记扫描1398.9(1457.5) - &gt; 1398.9(1457.5)MB,1801.9 / 0 ms [last resort gc]。&lt; --- JS stacktrace ---&gt;
==== JS堆栈跟踪======================================== =
安全上下文:0x3f4a60ab4629 2:toHex [/modules/Strings.js:~2] [pc = 0x38e2d4f84159](这= 0x2f2cfdf8d519,str = 0x15dec5a04101很长的字符串[9610800]) 3:编码[/app.js:18] [pc = 0x38e2d4f6e7bc](这= 0x2f2cfdf8d599,缓冲区= 0x15dec5a04101非常离......
完成。
如何用大字符串实现这一目标?