小编use*_*708的帖子

Java GC(分配失败)

为什么总是"GC(分配失败)"?

用于linux-amd64 JRE(1.8.0_25 -b17)的Java HotSpot(TM)64位服务器VM(25.25- b02),

CommandLine flags: 
-XX:CMSInitiatingOccupancyFraction=60 
-XX:GCLogFileSize=10485760 
-XX:+HeapDumpOnOutOfMemoryError 
-XX:InitialHeapSize=32212254720 
-XX:MaxHeapSize=32212254720 
-XX:NewRatio=10 
-XX:OldPLABSize=16 
-XX:ParallelGCThreads=4 
-XX:+PrintGC 
-XX:+PrintGCDetails 
-XX:+PrintGCTimeStamps 
-XX:+PrintStringTableStatistics 
-XX:+PrintTenuringDistribution 
-XX:StringTableSize=1000003 
-XX:SurvivorRatio=4 
-XX:TargetSurvivorRatio=50 
-XX:+UseCompressedClassPointers 
-XX:+UseCompressedOops
-XX:+UseParNewGC 
-XX:+UseConcMarkSweepGC
Run Code Online (Sandbox Code Playgroud)
27.329: [GC (Allocation Failure) 27.329: [ParNew
Desired survivor size 44728320 bytes, new threshold 15 (max 15)
- age   1:   16885304 bytes,   16885304 total
: 349568K->16618K(436928K), 0.2069129 secs] 349568K->16618K(31369920K), 0.2070712 secs] [Times: user=0.78 sys=0.04, real=0.21 secs]


28.210: [GC (Allocation Failure) 28.210: [ParNew
Desired survivor size 44728320 bytes, new threshold 15 (max 15) …
Run Code Online (Sandbox Code Playgroud)

java garbage-collection

112
推荐指数
2
解决办法
18万
查看次数

番石榴自动收报机缓存过期

Google Guava教程称可以使用Ticker测试缓存过期

根据我的理解,我可以用它来强制快速过期.我是对的吗?

但我试过以下代码,它没有用,有什么建议吗?

@Test
public void expireAfterWriteTestWithTicker() throws InterruptedException {
    Ticker t = new Ticker() {
        @Override
        public long read() {
            return TimeUnit.MILLISECONDS.toNanos(5);
        }
    };
    //Use ticker to force expire in 5 millseconds
    LoadingCache<String, String> cache = CacheBuilder.newBuilder()
            .expireAfterWrite(20, TimeUnit.MINUTES).ticker(t).build(loader);

    cache.getUnchecked("hello");
    assertEquals(1, cache.size());
    assertNotNull(cache.getIfPresent("hello"));
    //sleep
    Thread.sleep(10);
    assertNull(cache.getIfPresent("hello"));    //failed 

}
Run Code Online (Sandbox Code Playgroud)

testing ticker guava

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

Erlang ets删除/过滤元素

我使用elang ets表作为简单的缓存.我想使用进程扫描表并删除过期的元素(多个).

与ets:foldl

expire_table_example() ->
Tab = ets:new(ets_tab, [named_table, set]),
ets:insert(Tab, [{a, 1}, {b, 2}, {c, 3}, {d, 4}, {e, 5},{f,7}]),
Tab1 = ets:foldl(fun({Key, Val}, Acc) ->
if
   (Val > 3) -> [{Key, Val} | Acc];
   true -> Acc
 end
end, Tab, Tab),
io:format("end ~p ~n", [Tab1]).
Run Code Online (Sandbox Code Playgroud)

我有

[{f,7},{e,5},{d,4}|ets_tab] %% the ets_tab is NOT expected.
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

任何其他API会做得更好吗?

erlang fold ets

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

Erlang Gen_call vs Gen_cast

Erlang OTP表示gen_server:call同步并且gen_server:cast是异步的.

经过测试,我发现gen_server:call是同步的.但是,gen_server:cast 会将消息发送到邮箱,但并未同时运行任务.

如何创建多个进程来运行?

-module(example_gen).
-behaviour(gen_server).
-export([start_link/0]).
-export([init/1,
    handle_call/3,
    handle_cast/2,
    handle_info/2,
    terminate/2,
    code_change/3]).

 -export([
      add_bycall/2,
      add_bycast/2
   ]).

   -define(SERVER, ?MODULE).
   -record(state, {}).


add_bycall(Key, Value) ->
   gen_server:call(?SERVER, {bycall, Key, Value}).

 add_bycast(Key, Value) ->
      gen_server:cast(?SERVER, {bycast, Key, Value}).


 example(Key, Value) ->
       timer:sleep(2000),
      io:format("finished [~p, ~p] at [~p] ~n", [Key, Value, erlang:system_time(milli_seconds)]).

start_link() ->
    gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).

init([]) ->
   {ok, #state{}}.


handle_call({bycall, Key, Value}, _From, State) ->
      example(Key, Value),
      {reply, …
Run Code Online (Sandbox Code Playgroud)

erlang erlang-otp

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

Erlang ets插入多个表中

我是Erlang新手.我有一个关于ets表的问题.

我有两个ets表,我需要插入或删除两者的值.

insert(V) ->
  ets:insert(table_test,V),
  ets:insert(table_cp,V).

delete(V)->
  ets:delete(table_test,V),
  ets:delete(table_cp,V). 
Run Code Online (Sandbox Code Playgroud)

我怎样才能保证两者的操作成功或失败?

例如,插入操作,如果在ets上有错误:insert(table_cp,V),我应该从talbe_test中删除该值吗?

删除相同,如果ets:delete(table_cp,V)失败,我应该重新插入值吗?

请帮忙.

erlang ets

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

Erlang在列表中查找连续的相同元素

我需要从LIST中找到连续的相同元素.

从任何位置开始

即[BCCDAB]预期结果[cc] [BCDCBA]预期结果[]

有什么建议吗?谢谢

erlang list

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

标签 统计

erlang ×4

ets ×2

erlang-otp ×1

fold ×1

garbage-collection ×1

guava ×1

java ×1

list ×1

testing ×1

ticker ×1