小编Mic*_*elM的帖子

PostgreSQL简单加入非常慢

我有一个简单的查询和两个表:

drilldown

CREATE SEQUENCE drilldown_id_seq;

CREATE TABLE drilldown (
    transactionid bigint NOT NULL DEFAULT nextval('drilldown_id_seq'),
    userid bigint NOT NULL default 0 REFERENCES users(id),
    pathid bigint NOT NULL default 0,
    reqms bigint NOT NULL default 0,
    quems bigint NOT NULL default 0,
    clicktime timestamp default current_timestamp,
    PRIMARY KEY(transactionid)
);

ALTER SEQUENCE drilldown_id_seq OWNED BY drilldown.transactionid;

CREATE INDEX drilldown_idx1 ON drilldown (clicktime);
Run Code Online (Sandbox Code Playgroud)

querystats

CREATE SEQUENCE querystats_id_seq;

CREATE TABLE querystats (
    id bigint NOT NULL DEFAULT nextval('querystats_id_seq'),
    transactionid bigint NOT NULL default 0 …
Run Code Online (Sandbox Code Playgroud)

postgresql performance join

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

Heroku JVM调优

我已经为Heroku编写了一个关于Play2框架的应用程序,并且我遇到了内存问题.

2013-03-21T01:28:35+00:00 heroku[web.1]: Process running mem=543M(106.1%)
2013-03-21T01:28:35+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
Run Code Online (Sandbox Code Playgroud)

本地我在Heroku(512MB)上使用相同的JVM设置和内存限制来分析它,但是当我在Heroku发送请求时它几乎立即运行我们的堆空间.

JAVA_OPTS:    -Xmx384m -Xss512k -XX:+UseCompressedOops
Run Code Online (Sandbox Code Playgroud)

如果我能分析那里发生了什么,我就不会有任何问题,但java-agent doest似乎对我有用.

我没有遇到任何我见过的内存泄漏.我知道我创造的每一件物品都只会被使用一次,所以我可以让我的年轻一代变大,而我的老一代变小.我已经尝试了不同的JVM值,但似乎无法找到正确的组合,以便在没有正确的分析的情况下使其工作.

我已经阅读了所有关于调优的Heroku文档,但没有用.有没有人对此有任何想法,或者可能指出我正确的方向?

编辑

我仍然无法进行远程监控工作,但是在完整的CG之前和之后,我的本地测试系统有一些转储.

{Heap before GC invocations=1747 (full 0):
 PSYoungGen      total 42496K, used 42496K [0x00000000f5560000, 0x00000000fded0000, 0x0000000100000000)
  eden space 42176K, 100% used [0x00000000f5560000,0x00000000f7e90000,0x00000000f7e90000)
  from space 320K, 100% used [0x00000000fde80000,0x00000000fded0000,0x00000000fded0000)
  to   space 640K, 0% used [0x00000000fdd90000,0x00000000fdd90000,0x00000000fde30000)
 PSOldGen        total 106176K, used 105985K [0x00000000e0000000, 0x00000000e67b0000, 0x00000000f5560000)
  object space 106176K, 99% used [0x00000000e0000000,0x00000000e67804c8,0x00000000e67b0000)
 PSPermGen       total 43712K, used 43684K [0x00000000d5a00000, 0x00000000d84b0000, 0x00000000e0000000)
  object space …
Run Code Online (Sandbox Code Playgroud)

java jvm scala heroku

8
推荐指数
2
解决办法
4993
查看次数

将 Java Stream 映射到以对象为键的对象映射

我有一些课程,并且正在 List<WorkDay> 中做一些工作,其中包含一个 List<LedgerItem>,除了一部分之外,我一切正常。嗯,它有效,但不完全是我想要的。

public Stream<Map<WorkDay, Set<LedgerItem>>> adjustWorkDays(List<WorkDay> workDays) {        
    return workDays.stream()
            .sorted((d1,d2) -> d1.getCreated().compareTo(d2.getCreated()))
            .map(day -> createGroupByWorkDay(day))/*need it to collect here*/;
}
Run Code Online (Sandbox Code Playgroud)

如果您可以看到返回类型是,Stream<Map<WorkDay, Set<LedgerItem>>>但我想将其映射到流之外,就像Map<WorkDay, Set<LedgerItem>>使用收集器一样,但似乎无法获取Collectors.toMap()语法来执行除中断之外的任何操作。

就像我说的,一切都很完美,所以我不需要映射之外的任何东西来工作。

仅供参考:已经createGroupByWorkDay返回Map<WorkDay, Set<LedgerItem>>,但只接受一个,WorkDay因为这是一个要求,所以我无法更改其执行方式......

提前致谢

编辑:所以我所拥有的未在此处列出的方法createGroupByWorkDay可以按预期完美运行,并且永远不会改变。它返回正确的类型,Map<WorkDay, Set<LedgerItem>>但只有一个 WorkDay 的签名,就像createGroupByWorkDay(WorkDay day)原始评论中的问题方法一样,使用该方法来构建按 WorkDay 分组并返回的单个地图,但可能有 N 个这样的地图,因此方法public Stream<Map<WorkDay, Set<LedgerItem>>> adjustWorkDays(List<WorkDay> workDays)应该返回收集到收集器中的一张地图中的所有地图。如果那有意义的话?

java-8 java-stream collectors

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

标签 统计

collectors ×1

heroku ×1

java ×1

java-8 ×1

java-stream ×1

join ×1

jvm ×1

performance ×1

postgresql ×1

scala ×1