Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 传递Base64字符串与保存到磁盘的性能_.net_Base64_Bytearray - Fatal编程技术网

.net 传递Base64字符串与保存到磁盘的性能

.net 传递Base64字符串与保存到磁盘的性能,.net,base64,bytearray,.net,Base64,Bytearray,我有一个函数(不能更改/替换的传统VB6 COM),它接受文件的Base64字符串表示形式或文件的UNC或本地路径 这些值以字节数组或文件路径的形式从客户的WFC API调用中获取。如果文件以字节数组的形式出现,我们当前将字节数组转换为base64字符串以传递到函数中 问题在于,如果客户传入太多非常大的文件,我们有时会耗尽服务器上的内存。我们的临时解决方案是,不转换为base64,而是始终将字节数组保存到磁盘的临时目录中,然后将本地文件路径传递到函数中 我的问题是,这里是否存在收益递减点?我确信

我有一个函数(不能更改/替换的传统VB6 COM),它接受文件的Base64字符串表示形式或文件的UNC或本地路径

这些值以字节数组或文件路径的形式从客户的WFC API调用中获取。如果文件以字节数组的形式出现,我们当前将字节数组转换为base64字符串以传递到函数中

问题在于,如果客户传入太多非常大的文件,我们有时会耗尽服务器上的内存。我们的临时解决方案是,不转换为base64,而是始终将字节数组保存到磁盘的临时目录中,然后将本地文件路径传递到函数中


我的问题是,这里是否存在收益递减点?我确信如果它是一个非常大的文件,保存到磁盘会更好,但是如果它是一个100kb的文件,仅仅转换成base64并以这种方式传递它会更快更有效吗?也就是说,我可以检查字节数组的长度,如果文件小于400kb,请转换为base64,如果大于400kb,请保存到磁盘?

我们没有您的服务器,也没有您的数据。适用于此处这是一种零售软件,可部署到任意数量的配置中,因此我们也永远不会知道服务器或数据。所以我一直在寻找一些可以信赖的东西,比如“保存到磁盘总是比因为XYZ而转换到base64好”,或者反之亦然。或者只是经验法则。显然,将来自多个调用的5MB文件作为基础并不比将其保存到磁盘要好。大多数客户可能会有某种双核w/~8GM内存(我想这是相当标准的)。