当前位置: 首页 > 面试题库 >

Java-System.out对性能的影响

仲孙小云
2023-03-14
问题内容

我有这个JavaWeb应用程序,它可以从电子表格上传成千上万的数据,该电子表格是从上到下按行读取的。我System.out.println()用来在服务器端显示应用程序当前正在读取的行。

-我知道要创建一个日志文件。实际上,我正在创建一个日志文件,同时在服务器提示符下显示日志。
还有其他方法可以在提示上打印当前数据?


问题答案:

它可能会影响您的应用程序性能。大小会因您所运行的硬件类型和主机上的负载而异。

可以将其转化为性能方面的一些要点:

->就像Rocket boy所说的那样,println是同步的,这意味着您将招致对象标头的锁定开销,并且可能会导致线程瓶颈,具体取决于您的设计。

->在控制台上打印需要内核时间,内核时间意味着cpu将不在用户模式下运行,这基本上意味着您的cpu将忙于执行内核代码而不是应用程序代码。

->如果您已经在记录日志,则意味着I / O会花费更多的内核时间,并且如果您的平台不支持异步I / O,则这意味着您的CPU可能会在繁忙的等待时停止。

您实际上可以尝试对此进行基准测试并自己验证。

有很多方法可以避免这种情况,例如拥有非常快速的I /
O,可能专用的大型计算机,并且如果您的应用程序设计不会在该控制台打印中使用多线程,则可能会偏向锁定JVM选项。

像所有性能一样,这都取决于您的硬件和优先级。



 类似资料:
  • 前言 HTTPS 在保护用户隐私,防止流量劫持方面发挥着非常关键的作用,但与此同时,HTTPS 也会降低用户访问速度,增加网站服务器的计算资源消耗。 本文主要介绍 https 对用户体验的影响。 HTTPS 对访问速度的影响 在介绍速度优化策略之前,先来看下 HTTPS 对速度有什么影响。影响主要来自两方面: 协议交互所增加的网络 RTT(round trip time)。 加解密相关的计算耗时。

  • 问题内容: 问题:Java中的异常处理是否真的很慢? 传统观点以及许多Google的研究结果都表明,不应将异常逻辑用于Java中的常规程序流程。通常有两个原因, 它确实很慢-甚至比常规代码慢一个数量级(给出的原因各不相同), 和 这是混乱的,因为人们期望仅在异常代码中处理错误。 这个问题是关于#1的。 例如,此页面将Java异常处理描述为“非常慢”,并将这种缓慢与异常消息字符串的创建相关联-“然后

  • 他们看到的Watson语音到文本服务器最近的问题是,无法在单个实例中运行持续时间大于10分钟的音频文件,其次,当运行语音到文本的文件小于10分钟时,有时与Watson服务器的TCP连接丢失。 他们基本上是在python的Watson服务器上使用web套接字,并且想了解对于持续时间较长的音频文件(例如,我们的会议持续到3小时),什么是运行语音到文本的最佳方式。为web套接字上的连接丢失配置瓶颈的最佳

  • 我对Spring请求映射的内部工作很好奇。在类级别使用requestmapping注释是否会加快解析请求的控制器? 在Spring Boot中@RequestMapping如何在内部工作?-阅读这个答案和类似的答案。控制器和URL是否在初始启动期间映射并存储在注册表中?因为我在启动Spring Boot应用程序时发现了这些日志跟踪。 控制器+方法和URL是最初在启动期间映射的,还是每次为请求迭代?

  • 问题内容: 我正在开发一个应用程序,一种设计方法涉及大量使用操作员。虽然我知道OO设计通常会尝试避免使用,但这是另一回事了,这个问题与性能完全相关。我想知道是否会对性能产生影响?是一样快吗? 例如,我有一个包含10个子类的基类。在采用基类的单个函数中,我检查该类是否是子类的实例并执行一些例程。 我想解决的另一种方法是改用“类型ID”整数基元,并使用位掩码表示子类的类别,然后将子类“类型ID”与位掩

  • 本文向大家介绍JavaScript 事件对内存和性能的影响,包括了JavaScript 事件对内存和性能的影响的使用技巧和注意事项,需要的朋友参考一下 虽说事件处理程序可以为现代 Web 页面添加很强的交互能力,但是不分青红皂白就添加大量的事件处理程序绝对是一种愚蠢的行为。 我们来分析一下:事件处理程序本质上是一种函数,是一种对象,存放在内存中,设置大量的事件处理程序会使内存中的对象变多,Web