]> granicus.if.org Git - php/commitdiff
add test for eb32da13
authorAnatol Belski <ab@php.net>
Mon, 9 Nov 2015 21:45:22 +0000 (22:45 +0100)
committerAnatol Belski <ab@php.net>
Mon, 9 Nov 2015 21:45:22 +0000 (22:45 +0100)
Zend/tests/implode_small_strings.phpt [new file with mode: 0644]

diff --git a/Zend/tests/implode_small_strings.phpt b/Zend/tests/implode_small_strings.phpt
new file mode 100644 (file)
index 0000000..94652a6
--- /dev/null
@@ -0,0 +1,50 @@
+--TEST--
+Implode many small strings should not slowdown allocations
+--INI--
+memory_limit=256m
+--FILE--
+<?php
+
+/* To note is that memory usage can vary depending on whether opcache is on. The actual
+  measuring that matters is timing here. */
+
+$time = microtime(TRUE);
+
+/* This might vary on Linux/Windows, so the worst case and also count in slow machines. */
+$t0_max = 0.1;
+$t1_max = 0.5;
+
+$datas = [];
+for ($i = 0; $i < 220000; $i++)
+{
+    $datas[] = [
+        '000.000.000.000',
+        '000.255.255.255',
+        '保留地址',
+        '保留地址',
+        '保留地址',
+        '保留地址',
+        '保留地址',
+        '保留地址',
+    ];
+}
+
+$t0 = microtime(TRUE) - $time;
+var_dump($t0 < $t0_max);
+
+
+$texts = '';
+foreach ($datas AS $data)
+{
+    $texts .= implode("\t", $data) . "\r\n";
+}
+
+$t1 = microtime(TRUE) - $time;
+var_dump($t1 < $t1_max);
+
+?>
++++DONE+++
+--EXPECT--
+bool(true)
+bool(true)
++++DONE+++