草庐IT

PERFORMANCE

全部标签

java - 如何从代码库中删除 System.out.println

我们有一个巨大的(旧的遗留java)代码库,其中许多文件(大约5k)都有System.out.println。出于清理/性能原因,我们计划删除它们。我们如何编写一个脚本来替换它们而不在代码中引入任何问题?脚本不能盲目删除它们,因为以下情况可能会成为问题:if()some.code...elseSystem.out.println(...);DB.close();我正在考虑将它们替换为“;”。这将处理上述情况。你看到任何其他问题吗?还有其他建议吗? 最佳答案 你有没有考虑过这个愚蠢的案例:System.out.println("Pri

java - 性能问题 : Fastest way to convert hexadecimal char to its number value in Java?

我想将表示十六进制值(大写或小写)的字符转换为字节,例如'0'->0,'1'->1,'A'->10,'a'->10,'f'->15etc...我会非常频繁地调用此方法,因此性能很重要。有没有比使用预初始化的HashMap更快的方法?从中获取值(value)?回答这似乎是在使用switch-case和JonSkeet的直接计算解决方案之间的折腾-不过,switch-case解决方案似乎略有优势。Greg的数组方法胜出。以下是各种方法运行200,000,000次的性能结果(以毫秒为单位):Character.getNumericValue:8360Character.digit:8453H

Java:System.out.println() 这么慢的原因是什么?

对于可以在文本编辑器中完成的小型逻辑程序,为了跟踪,我使用经典的System.out.println()。我想你们都知道在大量迭代中使用它是多么令人沮丧。为什么这么慢?背后的原因是什么? 最佳答案 这与JVM无关。将文本打印到屏幕只涉及操作系统在绘制字母,尤其是滚动方面的大量工作。如果将System.out重定向到文件,速度会快得多。 关于Java:System.out.println()这么慢的原因是什么?,我们在StackOverflow上找到一个类似的问题:

java - Nashorn 启动慢可以克服吗?

我使用Rhino作为图形内部的脚本组件。项目中大约有200个独立运行的小脚本。启动应用程序时,脚本应立即全速运行。Rhino的性能足够,但由于Oracle建议迁移到Nashorn,我面临两难选择。下图显示了Rhino和Nashorn在大约15,000次脚本调用时的负载差异。Nashorn启动慢是我最大的问题。请注意,这是在JDK1.8.0上返回的。JDK1.8u5类似希望图片清晰。这是我如何使用ScriptEngine的概述:我正在使用一个脚本引擎实例,我为每个脚本创建一个CompiledScript对象,Swingworker执行CompiledScript.eval()一次。Swi

java - 具有更高速度的DelayQueue remove()?

我有一个跟踪超过500k个对象的状态信息的项目,该程序每秒接收10k个关于这些对象的更新,更新包括新建、更新或删除操作。作为程序内部管理的一部分,必须大约每五分钟对这些对象执行一次,为此我将它们放置在实现Delayed接口(interface)的DelayQueue中,允许DelayQueue的阻塞功能来控制这些对象的管理。在new时,一个对象被放置在DelayQueue上。更新后,对象从DelayQueue中remove(),更新并重新插入到更新信息指定的新位置。删除后,对象从DelayQueueremove()。我面临的问题是,一旦队列传递了大约450k个对象,remove()方法

java - 如何处理org.apache.tomcat.util.threads.TaskQueue.take()热点?

我正在使用visualvm分析我在tomcat上运行的应用程序。我正在调用一种RESTWeb服务方法,它在HBase中创建5000条记录,并向客户端返回成功和失败的计数。运行visualvmCPU采样器后,我发现org.apache.tomcat.util.threads.TaskQueue.take()是热点方法。这是热点方法的屏幕截图。有谁知道这种热点的处理方法吗? 最佳答案 这不是热点。查看Selftime(CPU)列-该方法不会消耗CPU,它只是等待Condition对象。 关于

java - 对于 boolean 值,(p ^ q) 和 (p != q) 之间是否存在有用的区别?

Java有两种方法来检查两个boolean值是否不同。您可以将它们与!=或^(xor)进行比较。当然,这两个运算符在所有情况下都会产生相同的结果。尽管如此,将它们都包括在内还是有意义的,例如在What'sthedifferencebetweenXORandNOT-EQUAL-TO?中讨论过的。.对于开发人员来说,根据上下文更喜欢一个甚至是有意义的——有时“这些boolean值中的一个是真的”读起来更好,而其他时候“这两个boolean值是否不同”更好地传达了意图。所以,也许使用哪一个应该是品味和风格的问题。令我吃惊的是javac并没有对它们一视同仁!考虑这个类:classTest{pu

java - 使用带有套接字的 Javas 对象流的性能问题

我正在尝试使用Java中的套接字和对象流进行本地IPC,但我发现性能很差。我正在测试通过ObjectOutputStream发送对象到通过Socket通过ObjectInputStream接收回复的ping时间。这是请求者:publicSocketTest(){intiterations=100;try{Socketsocket=newSocket("localhost",1212);ObjectInputStreamobjectInputStream=newObjectInputStream(socket.getInputStream());ObjectOutputStreamobj

java - 如何使用 Java2D 创建硬件加速图像?

我正在尝试创建一个快速图像生成器来执行大量二维转换和形状渲染,因此我正在尝试使用BufferedImage,然后获取Graphics2D对象来执行我的所有绘图。我现在主要关心的是制作速度非常快,所以我正在创建一个像这样的BufferedImage:GraphicsEnvironmentge=GraphicsEnvironment.getLocalGraphicsEnvironment();GraphicsConfigurationgc=ge.getDefaultScreenDevice().getDefaultConfiguration();BufferedImagebImage=gc

java - 高效实现 Java native 接口(interface)网络摄像头源

我正在从事一个项目,该项目从网络摄像头获取视频输入并向用户显示运动区域。我在这个项目中的“测试版”尝试是使用JavaMediaFramework来检索网络摄像头提要。通过一些实用函数,JMF方便地将网络摄像头帧作为BufferedImages返回,我围绕它构建了大量框架来处理。但是,我很快意识到Sun/Oracle不再很好地支持JMF,并且无法通过JMF界面访问一些更高的网络摄像头分辨率(720p)。我想继续将帧作为BufferedImages进行处理,并使用OpenCV(C++)获取视频源。单独使用OpenCV的框架,我发现OpenCV在高效返回高清网络摄像头帧并将它们绘制到屏幕上做