java - strace Java 小程序

标签 java strace nanotime

我正在尝试 strace java 小程序,但 strace 似乎不起作用。我正在调用以下函数。

public static void testSTrace(){
    long c = 0;
    for (int i = 0; i < 1000; i++){
        long start = System.nanoTime();

        try{Thread.sleep(0, 100);}catch(Exception e){/*cry*/}

        long stop = System.nanoTime();

        log.info("start : " +start+" stop : "+stop);
    }
}

在调用上述消息之前,我从 strace 得到以下输出,然后 strace 没有任何输出:

clone(child_stack=0xb7c9f4c4,
flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|
CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID|CLONE_DETACHED,
parent_tidptr=0xb7c9fbf8, {entry_number:6, base_addr:0xb7c9fbb0,
limit:1048575, seg_32bit:1,
contents:0, read_exec_only:0,
limit_in_pages:1, seg_not_present:0, useable:1}, child_tidptr=0xb7c9fbf8) = 8351 futex(0xb7c9fbf8, FUTEX_WAIT, 8351, NULL

一旦我开始从该方法获取日志输出,我就无法从 strace 获得更多信息。我对 strace 还很陌生。关于发生什么事的任何线索?小程序可以追踪吗?

最佳答案

您可能只跟踪单个线程。 使用 -f 标志运行 strace。

关于java - strace Java 小程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1188075/

相关文章:

java - 在调用 Thread.sleep() 后,System.nanoTime() 测量耗时的准确性降低

java - 服务程序 : OutOfMemory Error

java - Cassandra:使用 DataStax Java 驱动程序选择一系列 TimeUUID

java - Arduino 与 Java 接口(interface)问题

c - strace如何读取系统调用sys_open的文件名?

c - 检测进程使用/修改/创建/删除哪些文件的最佳方法是什么?

java - 从 onPostExecute 内部 AsyncTask 获取结果到 OnCreate

linux - Stracing 附加到多线程进程

java - 为什么我使用 System.nanoTime() 时得到负运行时间?

java - Thread.sleep(毫秒)精度