Tag: 性能

Java 2D游戏图形

下学期我们有一个模块,可以在团队中创建Java应用程序。 模块的要求是制作游戏。 在圣诞假期我一直在做一些练习,但我无法找出绘制图形的最佳方法。 我正在使用Java Graphics2D对象在屏幕上绘制形状,并每秒调用30次repaint() ,但这种情况非常糟糕。 有没有更好的方法在Java中绘制高性能2D图形?

Java Runtime.maxMemory不正确?

我运行了以下方法Runtime.getRuntime()。maxMemory()并给出了85196800。 但是,然后我从命令行运行顶部,它显示 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 8672 root 20 0 1284m 156m 4296 S 0.3 60.9 0:33.35 java 这不显示使用156M的ram吗? 有什么想法发生了什么?

尝试Catch Performance Java

捕获exception而不是进行检查时,try-catch需要多长时间(以纳秒为单位)(假设消息具有HashMap类型的查找性能)? try { timestamp = message.getLongField( MessageField.TIMESTAMP ); } catch (MissingDataException e) { //Not all messages contain this field } VS if (message.contains(MessageField.TIMESTAMP)) timestamp = message.getLongField( MessageField.TIMESTAMP );

传递接口和类重新加载之间的性能差异

人们一致认为使用接口比使用类更好。 我当然同意:接受ArrayList而不是List的库方法将是一个废话。 人们也一致认为,表现总是一致的。 在这里,我的基准测试有所不同。 接口和抽象类都有1到4个实现。 当使用两个以上的实现时,性能开始出现分歧。 我正在寻找这种行为的解释(以及错误共识的起源)。

Java JRE与GCJ

我用Java编写的速度测试得到了这个结果: Java real 0m20.626s user 0m20.257s sys 0m0.244s GCJ real 3m10.567s user 3m5.168s sys 0m0.676s 那么,GCJ的目的是什么呢? 有了这个结果,我确定我不打算用GCJ编译它! 我在Linux上测试了这个,Windows中的结果可能比那更好吗? 这是应用程序的代码: public static void main(String[] args) { String str = “”; System.out.println(“Start!!!”); for (long i = 0; i < 5000000L; i++) { Math.sqrt((double) i); Math.pow((double) i, 2.56); long j = i * 745L; String string = new […]

可以从命令行检索jconsole数据吗?

我目前正在使用jconsole来监控我的Java应用程序的性能指标,并希望编写此数据采集​​的 脚本 。 有没有办法检索这些VM指标(堆内存使用情况,线程数,CPU使用率等)到STDOUT ? top -p PID -b -n 1中的数据并没有完全削减它。 谢谢

测量JVM中GC的时间

假设我正在测试Java服务器应用程序。 我知道完成测试需要多长时间。 现在,我想知道在测试期间在GC上花了多少钱。 我该怎么做?

Java基准测试工具

我编写了一个小型java应用程序,我需要获取性能指标,如内存使用情况,运行时间等。是否有任何简单易用的性能测量工具?

Java Streams:如何做一个有效的“独特和排序”?

让我们假设我有一个Stream并希望只获得不同的元素并进行排序。 天真的做法是做到以下几点: Stream.of(…) .sorted() .distinct() 或者,也许相反: Stream.of(…) .distinct() .sorted() 由于JDK的源代码无法实现这两者的实现,我只是想知道可能的内存消耗和性能影响。 或者,如下所示编写我自己的filter会更高效吗? Stream.of(…) .sorted() .filter(noAdjacentDuplicatesFilter()) public static Predicate noAdjacentDuplicatesFilter() { final Object[] previousValue = {new Object()}; return value -> { final boolean takeValue = !Objects.equals(previousValue[0], value); previousValue[0] = value; return takeValue; }; }

在Java中,未使用的导入声明是否会占用内存?

像这样的未使用的导入 – 导入android.widget.RelativeLayout; 吃内存? 只是想知道它有多少或只是有价值? 也许这是一个愚蠢的问题,但我还没有找到答案。