小编bas*_*kin的帖子

如何在不读取其全部内容的情况下拖尾压缩文件?

我想模仿gzcat的功能 尾巴-n.

这对于有大量文件(几GB左右)的时候会有所帮助.我可以从头开始读取这样一个文件的最后几行吗?我怀疑这是不可能的,因为我猜gzip,编码将取决于所有以前的文本.

但是我还是想听听是否有人尝试过类似的事情 - 也许是通过可以提供这种功能的压缩算法进行调查.

compression algorithm

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

对象池

维护经常使用的对象池并从池中抓取一个而不是创建新对象的专业人员和成员是什么?类似于字符串实习的东西,除了它可以用于所有类对象.

例如,它可以被认为是好的,因为它节省了gc时间和对象创建时间.另一方面,如果从多个线程使用它,它可能是同步瓶颈,需要显式解除分配并引入内存泄漏的可能性.通过占用可回收的内存,它会给垃圾收集器带来额外的压力.

java garbage-collection memory-management

15
推荐指数
5
解决办法
5781
查看次数

在java中创建硬链接

目前我使用' ln'命令通过Runtime.exec().它工作正常.唯一的问题是,为了做这个fork,我们需要两倍的应用程序堆空间.我的应用程序是一个64位的应用程序,堆大小约10Gigs,因此它的交换空间耗尽.我找不到任何可以解决此问题的配置.

我也想不要使用JNI.我也听说过这个设施很快将在java 7中提供.

java operating-system

11
推荐指数
3
解决办法
5961
查看次数

大小为n的数组,其中一个元素为n/2次

给定n个整数的数组,其中一个元素出现超过n/2次.我们需要在线性时间和恒定的额外空间中找到该元素.

YAAQ:另一个阵列问题.

algorithm

10
推荐指数
2
解决办法
7924
查看次数

显式归零

在什么情况下java中显式nulling有用.它是否以任何方式通过使对象无法访问或某些东西来帮助垃圾收集器?它被认为是一种好习惯吗?

java

9
推荐指数
4
解决办法
2021
查看次数

java中的自定义转换说明符

我希望我的数据结构是自定义格式.比如我有DS

Address {
    string house_number,
    string street,
    string city,
    long pin_code,
}
Run Code Online (Sandbox Code Playgroud)

现在,我想将某些转换说明符与这些字段中的每一个相关联.

e.g. house_number -> H
     street -> S,
     city -> C,
     pin_code -> P
     ...
Run Code Online (Sandbox Code Playgroud)

那样的东西

myPrintWriter.printf("Mr A lives in %C", address_instance) 
Run Code Online (Sandbox Code Playgroud)

收益率"A先生住在波士顿"(如果address_instance.city = boston)等.

似乎没有简单的方法可以做到这一点.java.util.Formatter似乎是最终的.它提供的唯一自定义是通过Formattable接口,但这有助于仅自定义's'转换说明符.有没有办法添加我们的自定义转换说明符?任何帮助都感激不尽.

谢谢,

java format

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

Spawn remote process w/o common file system

(nodeA@foo.hyd.com)8> spawn(nodeA@bar.del.com, tut, test, [hello, 5]).
Run Code Online (Sandbox Code Playgroud)

我想在 bar.del.com 上生成一个进程,该进程没有对 foo.hyd.com 的文件系统访问权限(从我生成进程的位置),运行模块“tut”的子例程“test”。

有没有办法做到这一点,而无需为 nodeA@bar.del.com 提供已编译的“tut”模块文件?

erlang distributed spawn

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

strtok程序崩溃

http://www.opengroup.org/onlinepubs/000095399/functions/strtok.html上的strtok 程序每次都会崩溃..

#include <string.h>
...
char *token;
char *line = "LINE TO BE SEPARATED";
char *search = " ";


/* Token will point to "LINE". */
token = strtok(line, search);


/* Token will point to "TO". */
token = strtok(NULL, search);
Run Code Online (Sandbox Code Playgroud)

如果我使用char数组作为变量'line',它可以工作.即char line [] ="LINE TO BE SEPARATED"有效.

请解释一下.

c strtok

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

跨线程的对象可见性

我对跨线程发布数据和数据更改存在一般性疑问.考虑例如以下类.

public class DataRace {
  static int a = 0;

  public static void main() {
    new MyThread().start();
    a = 1;
  }

  public static class MyThread extends Thread {
    public void run() { 
      // Access a, b.
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

让我们关注main().

明确地

new MyThread().start();
a = 1;
Run Code Online (Sandbox Code Playgroud)

我们在MyThread启动后更改共享变量a,因此可能不是线程安全的发布.

a = 1;
new MyThread().start();
Run Code Online (Sandbox Code Playgroud)

但是这次a中的更改是在新线程中安全发布的,因为Java语言规范(JLS)保证线程A在启动线程B时可见的所有变量对线程B都是可见的,这实际上就像是Thread.start()中的隐式同步.

new MyThread().start();
int b = 1;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,在生成两个线程之后分配新变量时,是否可以保证新变量将安全地发布到所有线程.即如果var b被另一个线程访问,它是否保证看到它的值为1.请注意,我之前没有讨论对b的任何后续修改(当然需要同步),但是第一次完成分配由jvm.

谢谢,

java concurrency

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

单调增加2-d阵列

给出一个算法,在n×n矩阵中找到给定元素x(给出坐标),其中行和列单调递增.

我的想法:减少问题集大小.

在第1列中,找到最大元素<= x.我们知道x必须在这一行或之后(下).在矩阵的最后一列中,找到最小的元素> = x.我们知道x必须在此行或之前.对矩阵的第一行和最后一行执行相同的操作.我们现在已经定义了一个子矩阵,如果x完全在矩阵中,它就在这个子矩阵中.现在重复这个子矩阵的算法......沿着这些方向的东西.

[YAAQ:另一个阵列问题.]

algorithm

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

为什么我的HUP信号处理程序不更新Perl中的全局变量?

我正在做类似以下的事情:

我运行Perl脚本,其中包含以下内容:

# First i install a signal handler for HUP which sets a global flag.
$SIG{"HUP"} = sub { print "HUP received\n"; $received_hup = 1 };
# Now i wait for HUP to be received.
my $cnt = 0;
for ($cnt = 0; $received_hup != 1 and $cnt < 900; $cnt++) {
   sleep(1); 
}
print ($received_hup == 1) ? "true" : "false";
Run Code Online (Sandbox Code Playgroud)

然后我将HUP发送到此perl进程.

我发现虽然每次"HUP收到"也会被打印,但有时也会打印出来.即,虽然调用了信号处理程序,但不修改全局变量.

我不熟悉Perl中的并发问题,所以请指导我.

perl signals

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