实践/实验
1.应用场景
验证确认一些结论,帮助更加深入学习。 |
2.学习/操作
环境: windows 10 64位 专业版 php 7.3.4 apache 2.4.39 cpu:i5-6500 3.20GHz 3.19GHz 内存:8G 硬盘:SSD 256GB
1.利用php产生一千万个一亿的数字字符串形式, 确认占用的存储空间大小. 20191211 周三 <?php $start_time = time();
运行结果: 出现报错,提示服务器出现故障[应是超出php最大执行时间60s]. cpu百分比上升20%左右,内存几乎变化. //备注,这种方式只能作为参考,因为电脑上运行有其他程序 拓展:可分析时空复杂度 TBD test.txt文件大小:
实验调整: ①生成十万个一亿的数字字符串 结果如下: 实验前: 实验中/后: cpu和内存百分比无明显变化。//很快没有记录下来 执行时间:1.19972700s
②百万条 实验前: 实验中/后 执行时间:约12s 文件生成大小为:9.53 MB (10,000,000 字节) 占用空间:9.53 MB (10,002,432 字节) //占用空间自然是要文件本身大小要大,因为有额外数据存储
由上可知: 100万个一亿数字即一千万字节.9.53MB (约为10MB) 则一百亿个一亿数字即占空间95300MB 约为 93GB. 都放在内存,怕是放不下. 要处理这么多数据,只能切割拆分处理。
实验优化代码: <?php $start_time = time();
2.客户端传递参数的大小有限制吗? 资料显示:get请求有限制[具体值跟浏览器种类有关]通常为2048字节左右,post理论上没有限制,但实际上跟服务器硬件[内存]有关. GET: https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods/GET POST: https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods/POST 参见: https://www.cnblogs.com/elian91/p/11125201.html //关于get请求的长度限制到底是多少?----一个误区,一个教训
验证:TBD IE 11.476 最大为: 2024+参数名name+'=' =2049 字节 Chrome 版本 78.0.3904.108(正式版本) (64 位)最大为: 8171+test+'=' = 8176 字节 长度限制的是插叙字符串的长度.
可以参考:
后续补充 |
3.问题
TBD |
4.参考
TBD |
后续补充
...