已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > PHP > 讨论/求助

为什么 echo 很特殊


『回复列表(52|隐藏机器人聊天)』

22.

@无名啊,我觉得就是WSL1慢。微软说WSL2某些应用快2到5倍

(/@Ta/2022-08-22 16:37//)

23.

@老虎会游泳,手机上一试,确实是printfecho

我加一个数量级再试试,减少wsl 1反复启动进程带来的损耗吧

(/@Ta/2022-08-22 16:37//)

24.

@无名啊,你的手机结果和我的不同,因为我的printf("%d,%d\n", $uid, mt_rand(0, 255))是最快的。无论怎么测,多参数printf都远比其他快。

(/@Ta/2022-08-22 16:40//)

25.

@老虎会游泳,你看截屏上半部分结果,我的也是多参数 printf 最快

下半部分是加入了| wc -lc | sed '…'导致的,鬼知道哪个环节拖慢速度

(/@Ta/2022-08-22 16:44//)

26.

@无名啊,估计和体系结构有关了,寄存器分配、缓存命中率,都能影响性能

(/@Ta/2022-08-22 16:47//)

27.

@老虎会游泳,加了一个数量级后,测试结果出来了

结论

wsl 1还是很慢,比我手机慢 3 ~ 6 倍。。

手机结果

<echo $uid . ',' . mt_rand(0, 255) . "\n">

real    0m14.348s
user    0m10.306s
sys     0m3.968s

<echo $uid , ',' , mt_rand(0, 255) , "\n">

real    0m31.896s
user    0m16.267s
sys     0m15.480s

<printf($uid . ',' . mt_rand(0, 255) . "\n")>

real    0m16.574s
user    0m11.762s
sys     0m4.733s

<printf("%d,%d\n", $uid, mt_rand(0, 255))>

real    0m13.303s
user    0m8.735s
sys     0m4.503s

wsl 1结果

<echo $uid . ',' . mt_rand(0, 255) . "\n">

real    0m49.888s
user    0m16.672s
sys     0m33.219s

<echo $uid , ',' , mt_rand(0, 255) , "\n">

real    3m2.751s
user    0m46.047s
sys     2m16.688s

<printf($uid . ',' . mt_rand(0, 255) . "\n")>

real    0m54.545s
user    0m19.188s
sys     0m35.297s

<printf("%d,%d\n", $uid, mt_rand(0, 255))>

real    0m52.145s
user    0m17.234s
sys     0m34.906s
(/@Ta/2022-08-22 16:50//)

28.

@老虎会游泳,我切换至Deepin试试

(/@Ta/2022-08-22 16:50//)

29.

@老虎会游泳,我好久没开过deepin了,最后一次升级完,php版本是 7.3.19,第一项测试就花了 1m45s,不想测后面的了。。

(/@Ta/2022-08-22 16:58//)

30.

@老虎会游泳,听说现在 deepin 脱离 debian 了?不太敢联网升级

(/@Ta/2022-08-22 16:59//)

31.

@无名啊,php7和php8的性能不可同日而语。deepin软件源目前没有php8。

(/@Ta/2022-08-22 17:07//)

32.

@老虎会游泳,算了,懒得测了,就算 wsl 2 快 3 ~ 6 倍,也只是和我手机打个平手

笔电从此没尊严了

(/@Ta/2022-08-22 17:08//)

33.

@老虎会游泳,哇,要是我手机支持 type-cHDMI 输出,我的笔电岂不就可以提前退役了。。

(/@Ta/2022-08-22 17:11//)

34.

@无名啊,我们测的是IO密集型应用,不能代表CPU性能。瓶颈可能在其他地方。

(/@Ta/2022-08-22 17:17//)

35.

@老虎会游泳,这。。写至管道/丢弃数据,算IO密集吗?

甚至我觉得你那重定向至某个文件的,应该也是先写至系统缓冲区吧,可能没落盘就退出 php

反正我电脑CPU跑满一个核了

(/@Ta/2022-08-22 17:21//)

36.

@无名啊,算啊,echo和printf不都是IO函数吗,整个代码除了计算随机数,就在IO啊。程序一直在IO,就叫IO密集,无论IO简单还是复杂。

(/@Ta/2022-08-22 17:23//)

37.

@老虎会游泳,实在不行,我在 php 内干 wc 的活 —— 计算总字数 好了,最后才输出一次结果试试

(/@Ta/2022-08-22 17:25//)

38.

@无名啊docker run --rm -it --entrypoint=/bin/bash php:cli
image.png(131.14 KB)

(/@Ta/2022-08-22 17:28//)

39.

@无名啊,如果用ob_start()捕获输出,那么所有I/O操作就都在内存了,没有访问实际的I/O设备,应该就变成CPU密集型了。

(/@Ta/2022-08-22 17:29//)

40.

@老虎会游泳

修复EOF不在行首导致出错

不会出错啊

The format of here-documents is:

[n]<<[-]word
  here-document
delimiter

If the redirection operator is <<-, then all leading tab characters are stripped from input lines and the line containing delimiter. This allows here-documents within shell scripts to be indented in a natural fashion.

(/@Ta/2022-08-22 17:31//)

41.

@无名啊,我的x86比手机快很多啊。你应该在deepin里用php8试一试。可以像我那样开docker。

(/@Ta/2022-08-22 17:31//)

下一页 上一页 2/3页,共52楼

回复需要登录

8月25日 01:49 星期一

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1