Javascript 控制台写入速度是否影响程序执行速度

Javascript 控制台写入速度是否影响程序执行速度,javascript,windows,cmd,Javascript,Windows,Cmd,是否在大型for循环的每次迭代中都有console.log(假设iYes,控制台写入确实会影响程序执行时间) 事实上,写入控制台需要相当长的一段时间。根据控制台的实际情况,时间也会有所不同。因此,运行计算机本地显示器上的文本控制台将比网络ssh链接另一端的控制台快得多。我想,作为远程桌面的一部分查看的控制台Session不会比本地的更快或更慢—RDP会定期发送整个帧缓冲区,因此它不会试图跟上每一次控制台打印 有些运行时会做一些有趣的事情。我知道你的问题被标记为Javascript,但请耐心听我说

是否在大型for循环的每次迭代中都有console.log(假设iYes,控制台写入确实会影响程序执行时间)

事实上,写入控制台需要相当长的一段时间。根据控制台的实际情况,时间也会有所不同。因此,运行计算机本地显示器上的文本控制台将比网络ssh链接另一端的控制台快得多。我想,作为远程桌面的一部分查看的控制台Session不会比本地的更快或更慢—RDP会定期发送整个帧缓冲区,因此它不会试图跟上每一次控制台打印

有些运行时会做一些有趣的事情。我知道你的问题被标记为Javascript,但请耐心听我说。Linux上gcc中实现的printf()函数会打印到stdout,它本身通过IPC管道由运行库缓冲,因此如果有多个线程,所有线程都会调用printf()同时,输出也不会太混乱。通过管道进行缓冲实际上可以让应用程序返回一段时间;管道可以快速吸收文本输出,这样运行时就可以继续缓慢地将文本写入屏幕。我不知道Win32(Windows中一切的最终基础)是否做了类似的事情

因此,如果Javascript运行时构建在Linux上gcc上编译的C/C++之上,那么除了Javascript运行时添加的任何层之外,还需要完成所有这些层

在C/C++GCC中,Linux stderr不是以这种方式缓冲的,它只是尽快直接进入屏幕

“在printf()之前它是如何打印错误的?它们在我的源代码中是相反的!!!!”

任何在C/C++之上构建的类似Javascript的运行时也将继承这种行为


这似乎也是最近Eclipse在其CDT编译控制台中错误获取编译器输出顺序的原因。我认为Eclipse改变了它从gcc之类的程序获取控制台输出的方式,而没有意识到gcc本身是用gcc编译的,它不一定会输出stderr和stdout消息n严格的“时间”顺序。

是的,控制台写入确实会影响程序执行时间

事实上,写入控制台需要相当长的一段时间。根据控制台的实际情况,时间也会有所不同。因此,运行计算机本地显示器上的文本控制台将比网络ssh链接另一端的控制台快得多。我想,作为远程桌面的一部分查看的控制台Session不会比本地的更快或更慢—RDP会定期发送整个帧缓冲区,因此它不会试图跟上每一次控制台打印

有些运行时会做一些有趣的事情。我知道你的问题被标记为Javascript,但请耐心听我说。Linux上gcc中实现的printf()函数会打印到stdout,它本身通过IPC管道由运行库缓冲,因此如果有多个线程,所有线程都会调用printf()同时,输出也不会太混乱。通过管道进行缓冲实际上可以让应用程序返回一段时间;管道可以快速吸收文本输出,这样运行时就可以继续缓慢地将文本写入屏幕。我不知道Win32(Windows中一切的最终基础)是否做了类似的事情

因此,如果Javascript运行时构建在Linux上gcc上编译的C/C++之上,那么除了Javascript运行时添加的任何层之外,还需要完成所有这些层

在C/C++GCC中,Linux stderr不是以这种方式缓冲的,它只是尽快直接进入屏幕

“在printf()之前它是如何打印错误的?它们在我的源代码中是相反的!!!!”

任何在C/C++之上构建的类似Javascript的运行时也将继承这种行为

这似乎也是最近Eclipse在其CDT编译控制台中错误获取编译器输出顺序的原因。我认为Eclipse改变了它从gcc之类的程序获取控制台输出的方式,而没有意识到gcc本身是用gcc编译的,它不一定会输出stderr和stdout消息n严格的“时间”顺序