javaprintf性能
Java是使用参数调用javaprintf性能,java,Java,Java是使用参数调用(g)libc函数printf,还是Java自己进行替换,我认为这很慢 所以当我做System.out.printf(…),Java是解释%s,%d并调用。替换(“%d”,某物),还是只调用本机printf()c函数,将其直接传递给c/c++本机代码?的所有代码都是用Java完成的 大部分魔法发生在课堂上 最终将调用: formatter.format(Locale.getDefault(), format, args); 另请参见。它不调用C库。为什么您认为“Java自
(g)libc
函数printf
,还是Java自己进行替换,我认为这很慢
所以当我做System.out.printf(…)
,Java是解释%s
,%d
并调用。替换(“%d”,某物)
,还是只调用本机printf()
c函数,将其直接传递给c/c++本机代码?的所有代码都是用Java完成的
大部分魔法发生在课堂上
最终将调用:
formatter.format(Locale.getDefault(), format, args);
另请参见。它不调用C库。为什么您认为“Java自身进行替换”很慢?我认为这很慢?您的假设是错误的。Java基准测试是一项复杂的任务,但在进行任何假设之前,您仍然应该正确地进行测试。我认为差异将比您预期的小得多。我的意思是缓慢,就像在Java中进行所有替换,而不是在已经实现的本地打印中。又一次,为了拥有所有权而重新发明轮子。真是个扫兴的家伙。libc已经为几乎任何类型的I/O实现了所有这些功能。正如我上面所说的,它是一个全新的轮子。
formatter.format(Locale.getDefault(), format, args);