脚本宝典收集整理的这篇文章主要介绍了php – 哪个更好:sha1_file(f)或sha1(file_get_contents(f))?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
Method 1: sha1_file($file) Method 2: sha1(file_get_contents($file))
我尝试过10 Mb,但性能没有太大差异.
但是在更高的数据规模上.什么是更好的方式去?
在这种情况下,正确的选择是sha1_file.因为sha1_file是一个只适用于文件的高级函数.这种“限制”允许它利用文件/源可以作为stream1处理的事实:一次只有一小部分文件被读入内存.
第二种方法保证5MB-2GB的内存(文件的大小)被浪费/使用,因为file_get_contents在生成哈希之前将所有内容读入内存.随着文件大小的增加和/或系统资源的限制,这会对性能产生非常不利的影响.
1 sha1_file的源可以是found on github.这是一个提取,仅显示与流处理相关的行:
PHP_FUNCTION(sha1_file) { stream = PHP_stream_oPEn_wrapper(arg,"rb",REPORT_ERRORS,NULL); PHP_SHA1InIT(&context); while ((n = PHP_stream_read(stream,buf,sizeof(buf))) > 0) { PHP_SHA1Update(&context,n); } PHP_SHA1Final(digest,&context); PHP_stream_close(stream); }
以上是脚本宝典为你收集整理的php – 哪个更好:sha1_file(f)或sha1(file_get_contents(f))?全部内容,希望文章能够帮你解决php – 哪个更好:sha1_file(f)或sha1(file_get_contents(f))?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。