gpt4 book ai didi

php - 在 PHP 中生成高达 100MB 的随机字符串以进行测试的有效方法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:56:58 26 4
gpt4 key购买 nike

出于测试目的,我需要这样的函数:

/**
* @param int $sizeInBytes
*
* @returns string with random data
*/
function randomData($sizeInBytes)
{
...
}

有什么有效实现的想法吗?需要速度而不是真正的随机性(更像是一种“lorem ipsum”)。我最简单的想法是在文件系统中使用真正的大文件并通过流获取所需的大小。但这至少需要一个 100MB 的文件。有没有更好的办法?

最佳答案

如果您有可用的内存,只创建一个很长的字符串怎么样?

这不应该花那么长时间:)

 $x = str_repeat(
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque sollicitudin turpis ut augue lacinia at ullamcorper dolor condimentum. Nunc elementum suscipit laoreet. Phasellus vel sem justo, a vulputate arcu. Sed rutrum elit nec elit lobortis ultrices. Quisque elit nulla, rutrum et varius sit amet, pulvinar eget purus. Aliquam erat volutpat. Fusce turpis lectus, vestibulum sed ornare sed, facilisis sit amet lacus. Nunc lobortis posuere ultricies. Phasellus aliquet cursus gravida. Curabitur eu erat ac augue rutrum mattis. Suspendisse sit amet urna nec velit commodo feugiat. Maecenas vulputate dictum diam, eu tempor erat volutpat in. Donec id nulla tortor, nec iaculis nibh. Pellentesque scelerisque nisl sit amet ligula dictum commodo. Donec porta mi in lorem porttitor id suscipit lacus auctor.',
125000
);

您当然可以只将其写入一个文件,但在内存中创建它并不需要那么长时间。

上面的代码在大约 100ms 中生成一个 98MB 字符串,而创建一个 200MB 字符串大约需要 170ms我的盒子。对于大多数情况来说,这应该足够好了。


如以下评论所述:如果您限制允许脚本使用的内存量(或通过 memory_limit('...') 更改它),您可能必须更改 php.ini 设置; )。此外,字符串 > 1.5gb 可能会导致问题,但我想说这不是问题。

关于php - 在 PHP 中生成高达 100MB 的随机字符串以进行测试的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8702100/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com