小编Tai*_*air的帖子

eclipse + m2e + junit + infinitest + eclemma?

我有Eclipse for Java Developer 4.3 with m2e,eclemma,infinitest.我的项目使用带有junit 4.11的Eclipse m2e.

我的目的是每次无限次重新运行受上次保存影响的测试时更新覆盖信息.可能吗?

目前我能够使用Coverage手动运行测试并查看突出显示的代码,但是当我更改代码时,无限启动并且覆盖突出显示消失.

eclipse m2e infinitest eclemma

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

Java JDK BitSet与Lucene OpenBitSet

我试图实现一个BloomFilter,并遇到了一些关于BitSets的讨论.Lucene OpenBitSet声称它几乎在所有操作中都比Java BitSet实现更快.

http://grepcode.com/file/repo1.maven.org/maven2/org.apache.lucene/lucene-core/4.10.4/org/apache/lucene/util/OpenBitSet.java#OpenBitSet

我试着查看两个实现的代码.

Java BitSet代码

http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/java/util/BitSet.java#BitSet

在我看来,这两个类都使用'long'数组来存储这些位.各个位映射到特定的数组索引和存储在索引处的"long"值中的位位置.

是什么原因,那么OpenBitSet实现在性能方面要好得多?导致速度提高的代码差异在哪里?

java lucene performance bitset

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

使用Gruntjs配置Restangular.baseUrl

我在使用Gruntjs构建的项目中使用Restangular.这是一个片段:

// scripts/app.js

angular.module('myApp', ['restangular'])])
  .config(['RestangularProvider', function(RestangularProvider) {

    /* this is different on dev, test, prod environments */
    var baseUrl = 'http://localhost:8080/sms-api/rest/management/';

    RestangularProvider.setBaseUrl(baseUrl);
}])
Run Code Online (Sandbox Code Playgroud)

我想为baseUrlcli指定一个不同的值,如果没有指定则为默认值:

$ grunt server
Using default value for 'baseUrl'

$ grunt build --rest.baseUrl='http://my.domain.com/rest/management/'
Using 'http://my.domain.com/rest/management/' for 'baseUrl'
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

angularjs gruntjs restangular

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

Postgresql COALESCE性能问题

我在Postgresql中有这个表:

CREATE TABLE my_table
(
    id bigint NOT NULL,
    value bigint,
    CONSTRAINT my_table_pkey PRIMARY KEY (id)
);
Run Code Online (Sandbox Code Playgroud)

my_table中有大约50000行.

问题是,为什么查询:

SELECT * FROM my_table WHERE id = COALESCE(null, id) and value = ?
Run Code Online (Sandbox Code Playgroud)

比这个慢:

SELECT * FROM my_table WHERE value = ?
Run Code Online (Sandbox Code Playgroud)

除了在app-layer中优化查询字符串之外,还有其他解决方案吗?

编辑:实际上,问题是如何重写查询select * from my_table where id=coalesce(?, id) and value=?以使最坏情况下的性能不低于select * from my_table where value=?Postgresql 9.0中的情况

postgresql coalesce null-coalescing

7
推荐指数
2
解决办法
8294
查看次数

更新语句中的冗余数据

UPDATE无论我是否更改了列中的值,Hibernate都会生成包含所有列的语句,例如:

tx.begin();
Item i = em.find(Item.class, 12345);
i.setA("a-value");
tx.commit();
Run Code Online (Sandbox Code Playgroud)

发表此UPDATE声明:

update Item set A = $1, B = $2, C = $3, D = $4 where id = $5
Run Code Online (Sandbox Code Playgroud)

因此列B,C,D会更新,而我没有更改它们.

比如,项目经常更新,所有列都被编入索引.问题是:将Hibernate部分优化为这样的事情是否有意义:

tx.begin();
em.createQuery("update Item i set i.a = :a where i.id = :id")
    .setParameter("a", "a-value")
    .setParameter("id", 12345)
    .executeUpdate();
tx.commit();
Run Code Online (Sandbox Code Playgroud)

最让我困惑的是,EXPLAIN"未经优化"和"优化"查询版本的计划完全相同!

postgresql hibernate jpa sql-execution-plan

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

D3 Sankey最小化链接交叉

在他的d3 Sankey Diagram页面上,Mike Bostock说"将来可以改进算法,比如最小化链路交叉".

我想花一些时间做这件事,但我不确定是否要开始.有没有人对如何实现这一点有任何建议或想法?

我的直觉是,应用于节点以最小化链路距离的迭代松弛也可用于重新定位相同的节点以最小化链路交叉.

即使在每个x位置只有一个节点的情况下,我确实需要垂直"展开"节点,这样可以大大减少链接交叉(它不需要是学术级别的结果,实际的,比现在更好的结果就足够了)

这里有一个JS Fiddle作为起点 - 节点以次优的方式定位,使得边/链接从一开始就交叉:

function getData() {
    return {
        "nodes": [{
            "node": 0,
            "name": "Name0"
        }, {
            "node": 1,
            "name": "Name1"
        }, {
            "node": 2,
            "name": "Action2"
        }, {
            "node": 3,
            "name": "Name3"
        }, {
            "node": 4,
            "name": "Name4"
        }, {
            "node": 5,
            "name": "Action5"
        }, {
            "node": 6,
            "name": "Action6"
        }, {
            "node": 7,
            "name": "Action7"
        }, {
            "node": 8,
            "name": "Action8"
        }],
        "links": [{
            "source": 0,
            "target": 6, …
Run Code Online (Sandbox Code Playgroud)

d3.js sankey-diagram

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

正确设置gradle属性的默认值

拥有以下内容build.gradle:

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: "$repoUrl") {
                authentication(userName: "$repoUser", password: "$repoPassword")
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我怎么能$repoUrl有一个默认值file://$buildDir/repo

我试图把repoUrl=file://$buildDir/repogradle.properties,但我希望这是行不通的,因为它似乎$repoUrl没有递归评估.

groovy properties gradle

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

Unicode字符默认排序规则表

我不知道这个问题到底属于哪个网站,所以发布在这里。

\n\n

我在 RHEL 6.4 上使用 Postgresql 9.2 并观察到以下内容:

\n\n
select foo \nfrom unnest(\'{\xd0\xb0,\xd3\x99,\xd0\xb1,\xd0\xb2,\xd0\xb3,\xd0\xb4,\xd0\xb5,\xd0\xb6}\'::text[]) as foo \norder by foo collate "kk_KZ.utf8"\n
Run Code Online (Sandbox Code Playgroud)\n\n

给出

\n\n
\xd0\xb0\n\xd3\x99\n\xd0\xb1\n\xd0\xb2\n\xd0\xb3\n\xd0\xb4\n\xd0\xb5\n\xd0\xb6\n
Run Code Online (Sandbox Code Playgroud)\n\n

\n\n
select foo \nfrom unnest(\'{\xd0\xb0,\xd3\x99,\xd0\xb1,\xd0\xb2,\xd0\xb3,\xd0\xb4,\xd0\xb5,\xd0\xb6}\'::text[]) as foo \norder by foo collate "en_US.utf8"\n
Run Code Online (Sandbox Code Playgroud)\n\n

给出

\n\n
\xd0\xb0\n\xd0\xb1\n\xd0\xb2\n\xd0\xb3\n\xd0\xb4\n\xd0\xb5\n\xd3\x99 -- misplaced\n\xd0\xb6\n
Run Code Online (Sandbox Code Playgroud)\n\n

此外,我发现有默认 Unicode 排序规则元素表 [1],其中以正确的顺序列出了有问题的字符 (04D9 ; [.199D.0020.0002.04D9] # CYRILLIC SMALL LETTER SCHWA)。

\n\n

我知道期望“en_US.utf8”语言环境正确处理西里尔字符是愚蠢的,但是在字符通常不属于所使用的语言/语言环境的情况下,Unicode 或任何其他相关标准的正确行为是什么用于整理?

\n\n

[1] http://www.unicode.org/Public/UCA/latest/allkeys.txt

\n

postgresql unicode rhel collation

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

如何知道 ICU 配备的操作系统是什么版本?

他们这里说ICU在很多平台上都有使用。但我找不到 OS X 和 Windows 附带的版本。在 Linux 中,我想包管理器会告诉我。

更新:将 CLDR 更改为 ICU

unicode icu

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

gradle战争:如何强制包含传递提供的dep?

有这个build.gradle

apply plugin: 'war'

repositories {
    mavenCentral()
    maven { url "http://repository.jboss.org/nexus/content/groups/public" }
}

configurations {
    providedCompile {
        exclude module: 'commons-httpclient' // here it doesn't work
    }
}

dependencies {
    compile 'commons-httpclient:commons-httpclient:3.1'

    providedCompile ('org.jboss.resteasy:resteasy-jaxrs:2.3.3.Final') {
        //exclude module: 'commons-httpclient' // here it works
    }
}
Run Code Online (Sandbox Code Playgroud)

我期望这场战争:

WEB-INF/
WEB-INF/lib/
WEB-INF/lib/commons-httpclient-3.1.jar
Run Code Online (Sandbox Code Playgroud)

但只有这样:

WEB-INF/
Run Code Online (Sandbox Code Playgroud)

如果我取消评论2nd exclude并评论1st exclude,那么它将按需要工作。

如果这是预期的行为,那么我如何才能从提供的库中全局排除特定的传递对象?

gradle

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