小编fab*_*ien的帖子

在git HEAD中查找所有二进制文件

我有一个巨大的git repo,最终想用bfg清理.
但首先,我想跟踪并删除HEAD哪个git视为二进制文件...

所以,我正在寻找的是一个命令来查找HEAD中git视为二进制文件的所有文件.

这些没有帮助:

预先感谢您的帮助.

git

18
推荐指数
4
解决办法
4113
查看次数

bash shutdown hook; 或者,在主进程被终止时终止所有后台进程

我有一个bash运行无尽的命令作为后台进程:

#!/bin/bash

function xyz() {
  # some awk command
}

endlesscommand "param 1" | xyz &  # async
pids=$!
endlesscommand "param 2" | xyz &  # async
pids="$pids "$!
endlesscommand "param 3" | xyz    # sync so the script doesn't leave
Run Code Online (Sandbox Code Playgroud)

停止此脚本的唯一方法是(必须)Ctrl-C或kill,当发生这种情况时,我需要杀死$ pids变量中列出的所有后台进程.

我怎么做?

如果有可能捕获主进程上的kill信号并在发生这种情况时执行一个函数(shutdown hook),我会做类似的事情:

for $pid in $pids; do kill $pid; done;
Run Code Online (Sandbox Code Playgroud)

但是我找不到怎么做......

bash process

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

javassist 从第三方库/jar 获取 CtClass

我想在我的班级中使用 javassist 添加一个 SLF4J 记录器。所以首先,我尝试获取它的 CtClass ,例如我可以在以下之后构建该字段:

CtClass loggerClass = pool.get(org.slf4j.Logger.class.getName());
Run Code Online (Sandbox Code Playgroud)

但是我从来没有通过那条线并且总是得到一个 javassist.NotFoundException。

我尝试了不同的事情:

pool.importPackage("org.slf4j.Logger");
// or
pool.importPackage("org.slf4j");
Run Code Online (Sandbox Code Playgroud)

我什至尝试将 org.slf4j.Logger 传递给 URLClassLoader:

// add org.slf4j.Logger to the list of urls...
// then:
URLClassLoader loader = new URLClassLoader(urls);
ClassPool.getDefault().insertClassPath(new LoaderClassPath(loader));
Run Code Online (Sandbox Code Playgroud)

但没有任何作用。

注意:这是在调用 insertClassPath 之后创建池的方式:

final ClassPool pool = new ClassPool(ClassPool.getDefault());
pool.childFirstLookup = true;
Run Code Online (Sandbox Code Playgroud)

我完全被困在这里。任何帮助将非常感激。

java javassist

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

java socket keep alive很慢,重新打开socket更快

我试图想出一个简单的HTTP客户端的java实现,它保持套接字打开并重用它来查询同一主机上的其他(或相同)URL.

我有一个使用java.net.Socket的简单实现,但不知何故,当我保持套接字打开时的性能比我不断创建一个新的更糟糕.

结果首先,完整的可执行代码如下:

使用KeepAlive:从迭代#2开始变慢

> java -server -Xms100M -Xmx100M -cp . KeepAlive 10 true
--- Warm up ---
18
61
60
60
78
62
59
60
59
60
Total exec time: 626
--- Run ---
26
59
60
61
60
59
60
60
62
58
Total exec time: 576
Run Code Online (Sandbox Code Playgroud)

每次重新创建套接字会产生更好的结果:

> java -server -Xms100M -Xmx100M -cp . KeepAlive 10 false
--- Warm up ---
188
34
39
33
33
33
33
33
34
33
Total exec time: 494
--- Run …
Run Code Online (Sandbox Code Playgroud)

java sockets performance keep-alive

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

标签 统计

java ×2

bash ×1

git ×1

javassist ×1

keep-alive ×1

performance ×1

process ×1

sockets ×1