小编twi*_*imo的帖子

为什么40亿次迭代的Java循环只需2 ms?

我在配备2.7 GHz Intel Core i7的笔记本电脑上运行以下Java代码.我打算让它测量完成2 ^ 32次迭代循环所需的时间,我预计大约需要1.48秒(4/2.7 = 1.48).

但实际上它只需要2毫秒,而不是1.48秒.我想知道这是否是下面任何JVM优化的结果?

public static void main(String[] args)
{
    long start = System.nanoTime();

    for (int i = Integer.MIN_VALUE; i < Integer.MAX_VALUE; i++){
    }
    long finish = System.nanoTime();
    long d = (finish - start) / 1000000;

    System.out.println("Used " + d);
}
Run Code Online (Sandbox Code Playgroud)

java jvm for-loop

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

vim:删除多行的前两个空格

使用VIM删除每行前两个空格的最简单方法是什么?基本上它每条线重复"2x".

澄清:这里假设前两个字符是空格.所以问题是关于多条线的缩进.

vim

77
推荐指数
4
解决办法
6万
查看次数

关于postgres中的聚簇索引

我正在使用psql访问postgres数据库.查看表的元数据时,有没有办法查看表的索引是否为聚簇索引?

我听说表的PRIMARY KEY自动与聚簇索引相关联,是真的吗?

postgresql clustered-index

38
推荐指数
6
解决办法
4万
查看次数

为什么在Linux中进行I/O是不可中断的?

它背后的理由是什么?如果允许进行I/O的进程处理信号会有什么不良后果?

linux io sleep process linux-kernel

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

如何在CSH中拆分字符串?

例如,我想用逗号分隔"一,二,三"作为分隔符,并使用循环分别处理结果三个子字符串.

csh

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

如何在 Ruby 中设置 FTP 会话空闲超时?

我有一个 Ruby 线程,它首先连接到 FTP 服务器,然后上传数千个文件。由于一些连接问题,Ruby 线程经常挂起。所以我想为ftp空闲设置一个超时时间。

Ruby Net::FTP Timeout Threads帖子建议使用 Timeout 模块:

begin
  Timeout.timeout(10) do
    // connect to FTP and upload
  end
rescue Timeout::Error
    ...
end
Run Code Online (Sandbox Code Playgroud)

这种方法不会解决我的问题,因为超时是针对整个计算块的,而不是从 FTP 会话的空闲/不活动开始的超时。

所以我该怎么做?

ruby ftp timeout

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

Linux top命令如何确定Java进程的状态?

[更新:在top我按下shift + H后,显示线程而不是进程,然后它将Java线程显示为R并使用100%CPU时间,这是我在发布此问题之前的预期.]

由于Java进程有多个线程,每个线程可能处于不同的状态,那么Linux top命令如何确定Java进程状态?

如果我运行以下代码,

public class Test{
  public static void main(String[] args){
     while (true){
       int n = (int)(Math.random() * 1000);
     }
  }
}
Run Code Online (Sandbox Code Playgroud)

然后,运行top显示进程状态为S,并且它使用100%CPU时间.

此外,运行strace节目并仅显示:

futex(0x7f6ba759c9d0, FUTEX_WAIT, 26060, NULL

但是,运行jstack显示主线程是RUNNABLE:

"main" prio=10 tid=0x00007fd7ec007800 nid=0x669b runnable [0x00007fd7f5754000]
  java.lang.Thread.State: RUNNABLE
    at Test.main(Test.java:5)
Run Code Online (Sandbox Code Playgroud)

jstack 还表明,WAITING状态只有两个线程:

"Finalizer" daemon prio=10 tid=0x00007fd7ec080000 nid=0x66a6 in Object.wait() [0x00007fd7f0252000]
    java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000007ad001310> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:133)
        - locked <0x00000007ad001310> …
Run Code Online (Sandbox Code Playgroud)

java linux jvm process infinite-loop

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

在shell脚本中输出到文件名变量时出错

我写了一个非常简单的程序来测试输出数据到文件名变量.

#!/bin/sh
file="~/output"
echo "test" > $file
Run Code Online (Sandbox Code Playgroud)

当我运行此脚本时,我收到以下错误

"./script.sh:line 3:〜/ output:没有这样的文件或目录"

那么我应该如何修改我的代码以使其工作?或者它在shell脚本中不受支持?

unix scripting

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

如何指定Play框架以使用其他路由文件

我知道我可以通过使用-Dconfig.file标志使Play服务器使用其他application.conf文件。

有没有办法指定服务器使用其他路由文件?

playframework playframework-2.0

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

HTML中的Lisp样式引用

在Lisp中,评估'(+ 1 2)产生'(+ 1 2),而不是3.看来HTML不支持Lisp风格的引用,所以你不能说像<quote> <b>而不是粗体</b> </ quote>在HTML中,让它只生成<b>不粗体</ b>而不是粗体.

这有什么技术原因或历史原因吗?谢谢.

html lisp

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

如何表达"将linux命令映射到文件中的每一行"?

我经常需要删除不在特定svn源树中的所有文件.要获取所有文件名列表,我使用:

svn st | grep ^? | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

这个命令会给我一个文件名列表,每行一个名字.那怎么能表达出来的想法呢?

for (each line in ${svn st | grep ^? | awk '{print $2}' )
    rm -f line
Run Code Online (Sandbox Code Playgroud)

linux awk

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

任何unix命令来获取最近执行的命令的结果?

例如,

我执行了"pwd",它显示了当前的工作目录.然后,如果我想在我的另一个命令中重用该结果,那么通过Unix命令或内置变量来获取它会很方便.它存在吗?

unix

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