小编Mr *_*ley的帖子

Java反射运行时性能

这是一项学术性的练习(免责声明).

我正在构建一个应用程序,它将尽可能快地获利,因为它将与其他人竞争.

我知道使用反射声明一个类(下面的示例)将遭受巨大的惩罚而不是标准声明.

Class mDefinition = Class.forName("MySpecialClassString");
Constructor mConstructor = mDefinition.getConstructor(new Class[]{MySpecialClass.class});
myClass = (MySpecialClass) mConstructor.newInstance(this);
Run Code Online (Sandbox Code Playgroud)

然而,在宣布myClass我是否以标准方式使用它之后,myClass.myMethod() 我是否也会遭遇性能损失,或者它是否会像我以标准方式宣布该类一样?

java reflection performance

11
推荐指数
2
解决办法
2447
查看次数

在Java 8中动态创建和编译函数

我有一个Java程序,它根据用户输入生成一个数学方程式.我想评估这个等式,但迭代它的语法树是相当慢的.更快的解决方案是将等式放入Java文件,编译它,并调用已编译的代码(在运行时).这是我目前正在做的事情:

  • Equation.java使用该函数创建一个文件作为静态成员.例如,如果生成的等式是3*x + 2*y(实际等式更复杂),程序将创建文件

    public class Equation {
        public static DoubleBinaryOperator equation = (x, y) -> 3*x + 2*y;
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • Equation.class使用JavaCompiler将其编译
  • 动态导入类文件并使用反射调用方程式

对于看起来应该简单的东西来说,这是一个巨大的样板.是否有更简单的方法将此等式转换为函数并在运行时调用它?

java reflection

5
推荐指数
1
解决办法
658
查看次数

Java是否具有按字典顺序排序列表(而不是其元素)的功能?

在Haskell中,类型列表Ord a => [a]具有字典顺序.例如,

> compare [1, 2, 3] [2, 3, 4]
LT
> compare [1] [1, 2]
LT
Run Code Online (Sandbox Code Playgroud)

这是大多数语言对字符串的词典排序的直接概括.例如,在Java中

"abc".compareTo("bcd")  // -1
"a".compareTo("ab")     // -1
Run Code Online (Sandbox Code Playgroud)

标准库或其他库中是否有任何Java函数实现Haskell所具有的列表的词典排序?我希望它有类型的签名

<T extends Comparable<T>> int compare(List<T>, List<T>)
Run Code Online (Sandbox Code Playgroud)

自己实施它并不困难,但我宁愿不重新发明轮子.

java sorting haskell

3
推荐指数
1
解决办法
1157
查看次数

简单的Numpy矢量化

我有两个1D numpy的阵列startstop,两者都包含整数(这是用来索引一些其它阵列).我有以下代码.

index_list = []
for i in range(len(start)):
    temp = range(start[i], stop[i])
    index_list.extend(temp)
index_list = np.array(index_list)
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法可以对此进行矢量化?

python arrays numpy

2
推荐指数
1
解决办法
85
查看次数

标签 统计

java ×3

reflection ×2

arrays ×1

haskell ×1

numpy ×1

performance ×1

python ×1

sorting ×1