草庐IT

OPTIMIZATION

全部标签

java - 错误 : Can't find common super class of

我正在尝试使用Proguard处理MSWindows桌面应用程序(使用Eclipse提供的SWT库的Java6SE)。我收到以下严重错误:Unexpectederrorwhileperformingpartialevaluation:Class=[org/eclipse/swt/widgets/DateTime]Method=[(Lorg/eclipse/swt/widgets/Composite;I)V]Exception=[java.lang.IllegalArgumentException](Can'tfindcommonsuperclassof[java/lang/String

Java - 反编译时字符串等于

前几天我反编译了一些Java代码,发现了这个:Strings1="something";Strings2="something_else";if(s1==s2){//Path1}else{//Path2}显然使用'=='来测试字符串是否相等是不好的但我想知道——这段代码已经过编译和反编译。如果所有字符串都已在编译时定义并驻留并且代码已编译-s1.equals(s2)是否有可能优化为“s1==s2”? 最佳答案 我很怀疑。通常,Java编译器通过字节码优化做的很少,将优化留给了JIT阶段。我对此做了一些试验,我的编译器没有对以下内容做

java - 如果重复相同的代码,为什么 Java 会更快?

给定以下代码:publicclassTest{staticint[]big=newint[10000];publicstaticvoidmain(String[]args){longtime;for(inti=0;i输出显示持续时间减少的趋势:171918167213165930165502164647165075203991705634575943193457594447645759526014789748325为什么getTimes中的相同代码在执行8次或更多次后,执行时间还不到三分之一?(编辑:不是每次都发生在第8次,而是从第5次到第10次) 最佳答案

Java 优化字符串与字符数组

在我编写的程序中,我进行了大量的字符串操作。我正在尝试提高性能,并且想知道使用char数组是否会显示出不错的性能提升。有什么建议吗? 最佳答案 你在做什么操作?您可以发布代码示例吗?您可能想看看StringBuilder它实现了CharSequence以提高性能。我不确定你想自己动手。顺便说一句,StringBuilder不是线程安全的...如果你想要线程安全,请查看StringBuffer. 关于Java优化字符串与字符数组,我们在StackOverflow上找到一个类似的问题:

java - 在 StringBuffer append 中对单字符值使用字符而不是 String

我正在查看PMD规则AppendCharacterWithChar。它说AvoidconcatenatingcharactersasstringsinStringBuffer.append.StringBuffersb=newStringBuffer();//Avoidthissb.append("a");//useinsteadsomethinglikethisStringBuffersb=newStringBuffer();sb.append('a');我真的需要这个PMD规则吗?下面两段代码的性能差异大吗?Stringtext=newStringBuffer().append("

java - 逻辑内联与调用方法的效率?

我目前与我的二年级JAVA教授有分歧,我希望你们能帮助解决:我们开始的代码是这样的:publicTpeek(){if(isEmpty()).........}publicbooleanisEmpty(){returntopIndex她希望我们删除isEmpty()引用并将其代码直接放入if语句(即将peek方法内容更改为:if(topIndex)到“使代码更有效率”。我认为a)运行时/编译时优化器很可能会内联isEmpty()call,b)即使没有,5-10台机器操作在几乎所有情况下都可以忽略不计,并且c)它只是糟糕的风格,因为它使程序的可读性和可变性降低。所以,我想我的问题是:与仅仅

c# - 更快地实现总和(用于 Codility 测试)

sum的以下简单实现如何更快?privatelongsum(int[]a,intbegin,intend){if(a==null){return0;}longr=0;for(inti=begin;i编辑背景是有序的。阅读有关编码恐怖的最新条目,我来到了这个网站:http://codility.com它有这个有趣的编程测试。无论如何,我在提交的100分中得到了60分,基本上(我认为)是因为这个sum的实现,因为我失败的那些部分是性能部分。我收到TIME_OUT_ERROR的所以,我想知道是否可以对算法进行优化。因此,不允许使用内置函数或程序集。这可以用C、C++、C#、Java或几乎任何

java - 如何进一步优化这个色差函数?

我做了这个函数来计算CIELab颜色空间中的颜色差异,但它缺乏速度。由于我不是Java专家,我想知道周围是否有任何Java大师有一些可以提高这里速度的技巧。代码基于评论区提到的matlab函数。/***ComputetheCIEDE2000color-differencebetweenthesamplecolorwith*CIELabcoordinates'sample'andastandardcolorwithCIELabcoordinates*'std'**Basedonthearticle:*"TheCIEDE2000Color-DifferenceFormula:Impleme

java - 增加内核数量时性能下降

我的mac配备了16个内核。System.out.println(Runtime.getRuntime().availableProcessors());//16我正在运行下面的代码以查看利用我的核心的有效性。线程'CountFileLineThread'简单地计算文件中的行数(文件夹中有133个文件)我在这一行做笔记:ExecutorServicees=Executors.newFixedThreadPool(NUM_CORES);其中NUM_CORES介于1到16之间。您会从下面的结果中注意到,超过5个内核时性能开始下降。我不希望6核及以上的“yield递减产品”(顺便说一句,对于

keySet 上的 Java 迭代

我有以下Java代码:publicvoidmyMethod(finalMappFeatureGroupsFromPackage){finalSetkeys=pFeatureGroupsFromPackage.keySet();for(finalStringkey:keys){tmpList=(List)pFeatureGroupsFromPackage.get(key);//dowhatever}}我收到来自“findBugs”的警告,内容如下:方法myMethod低效地使用了keySet迭代器而不是entrySet迭代器。警告是在tmpList分配时完成的。我不明白为什么这是低效的。