小编Mon*_*key的帖子

Java JRE与GCJ

我用Java编写的速度测试得到了这个结果:

Java

real        0m20.626s
user        0m20.257s
sys         0m0.244s

GCJ

real        3m10.567s
user        3m5.168s
sys         0m0.676s
Run Code Online (Sandbox Code Playgroud)

那么,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 String(String.valueOf(i));
        string = string.concat(" kaka pipi"); // "Kaka pipi" is a kind of childly call in Dutch. 
        string = new String(string.toUpperCase());
        if (i % 300 == …
Run Code Online (Sandbox Code Playgroud)

java performance gcj

21
推荐指数
4
解决办法
2万
查看次数

Java等效于Numpy多维对象

使用它一段时间后,我真的很喜欢Numpy多维数组.使用简洁但可读且相当通用的代码编写算法是有帮助的.我希望在Java中有同样的东西.在用自己的类似Numpy的API编写多维数组之前,有没有这样的事情?

[PS]我搜索了一下,没看到

java numpy multidimensional-array

15
推荐指数
3
解决办法
2万
查看次数

使用SCons实现"安装"目标

我尝试设置一个构建系统来构建一个共享的lib MySharedLib和一个依赖MySharedLib的二进制MyBinary.构建系统应该能够在被要求时安装MySharedLibMyBinary,并且只有在被要求时才能安装.

import os.path

env = Environment()
env.Append(CCFLAGS='-g -Wall -ansi -O2')

prefix = '/usr/local'
lib_dir = os.path.join(prefix, 'lib')
bin_dir = os.path.join(prefix, 'bin')
Export('env prefix lib_dir bin_dir')

libMySharedLib = SConscript('libMySharedLib/SConscript')
MyBinary   = SConscript('MyBinary/SConscript')

env.Alias('install', env.Install(lib_dir, libMySharedLib))
env.Alias('install', env.Install(bin_dir, MyBinary))
Run Code Online (Sandbox Code Playgroud)

当我在没有命令行参数的情况下运行SCons时,会构建MySharedLib和MyBinary,但它也会尝试安装它们.我希望它们只在我要求安装目标时安装.我尝试了很多次,阅读了文档,但我无法弄明白.

scons

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

将函子作为C ++模板参数传递

作为个人启蒙的一项练习,我使用表达式模板实现了矢量数学。我想实现一些将相同一元函数应用于矢量表达式的所有元素的操作。到目前为止,我做到了。

我的基本向量表达模板是这样实现的

template <typename E>
class VectorExpr {
public:
  int size() const { return static_cast<E const&>(*this).size(); }

  float operator[](int i) const { return static_cast<E const&>(*this)[i]; }

  operator E& () { return static_cast<E&>(*this); }

  operator E const& () const { return static_cast<const E&>(*this); }
}; // class VectorExpr
Run Code Online (Sandbox Code Playgroud)

然后,应该是矢量的对象看起来像这样

class Vector2 : public VectorExpr<Vector2> {
public:
    inline size_t size() const { return 2; }

    template <typename E>
    inline Vector2(VectorExpr<E> const& inExpr) {
    E const& u = inExpr;
    for(int i = 0; …
Run Code Online (Sandbox Code Playgroud)

c++ templates

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

Spring应用程序:在Quartz作业中获取服务器路径

我正在使用JBoss 4和Spring.在Web应用程序中,我使用Quartz调度程序来执行某些计划任务.在Quartz作业中,我想获得服务器路径是否可能?如果有,怎么样?

PS:某些上下文我需要Quartz作业中的服务器路径,因为该作业会发送电子邮件.电子邮件包含我的应用程序所服务的网站的链接,为了构建正确的URL,我需要一个服务器路径.硬编码服务器路径是禁忌,因为应用程序部署在各种服务器上.

java spring quartz-scheduler

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

使用Numpy进行行缩放

我有一个维数为MxN的数组H和一个维数为M的数组A. 我想用数组A缩放H行.我这样做,利用Numpy的元素行为

H = numpy.swapaxes(H, 0, 1)
H /= A
H = numpy.swapaxes(H, 0, 1)
Run Code Online (Sandbox Code Playgroud)

它可以工作,但两个swapaxes操作不是很优雅,我觉得有一种更优雅和更简洁的方式来实现结果,而不创造临时性.你能告诉我怎么 ?

python numpy

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