小编Eri*_*son的帖子

你如何编写其他人手写的代码,而这些代码中没有任何人可以编写代码?

你如何编写易于被其他人阅读的代码,并且没有编写任何部分的代码?

readability

5
推荐指数
4
解决办法
969
查看次数

我如何故意从主内存和缓存中读取?

所以我正在学习汇编,我们有一个任务是找到从内存读取和从缓存中读取之间的时间差.我们必须通过创建2个循环并对它们进行计时来实现.(一个从主存储器读取,另一个从缓存读取).问题是,我不知道,也找不到任何告诉我如何从缓存或主存储器读取= /.你们能帮助我吗?我在MASM32中这样做.我理解如何制作循环和大多数汇编语言,但我只是不能让它读取= /


编辑:

我有一个问题,我已经这样做了......

mov ecx, 100 ;loop 100 times
xor eax, eax ;set eax to 0
_label:
mov eax, eax ;according to me this is read memory is that good?
dec ecx ;dec loop
jnz _label ;if still not equal to 0 goes again to _label
Run Code Online (Sandbox Code Playgroud)

......那会没事吗?


编辑2:

那么,我不打算撬开,我感谢你的帮助,我只是有另一个问题,因为这是我必须做的两个循环.我需要以某种方式比较它们,我一直在寻找一个定时器指令,但我没有发现任何我只发现:timeGetTime,GetTickCount和Performance Counter但据我所知,这些指令返回系统时间而不是时间完成循环需要它.有没有办法真正做我想要的?或者我需要考虑另一种方式?

另外,如果我给出各种"mov"指令,那么从第二个循环中的不同寄存器(不从高速缓存读取的那个)读取是否可以呢?还是我完全不在这里?

对不起所有这些问题,但再次感谢您的帮助.

performance assembly caching masm

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

为什么这两个内容相同的jar文件有不同的文件大小?

我正在重新组织我们的java代码库,并希望比较我们生成的jar文件.

当我在旧的源代码树中构建时,我得到的jar文件大小为3360081.

在新的源代码树中,它是3360128.

我做一个"jar tvf jarfile",然后从文件中删除日期.

列表如下所示:

     0 Mon Mar 16 10:41:16 EDT 2009 META-INF/
   102 Mon Mar 16 10:41:14 EDT 2009 META-INF/MANIFEST.MF
     0 Mon Mar 16 10:41:14 EDT 2009 decodes/
Run Code Online (Sandbox Code Playgroud)

剥离日期后,列表如下所示:

     0  META-INF/
   102  META-INF/MANIFEST.MF
     0  decodes/
Run Code Online (Sandbox Code Playgroud)

两个jar列表是相同的.

什么会导致"相同"jar文件中的47字节差异?

我在RedHat Linux 4上运行编译.

java jar

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

如何修复此UnknownHostException?

public static final String readURL(String url)throws Throwable
{
        try {
            InputStream in = (InputStream) fetch(url);
            byte[] bArr = readBytes(in);
            return new String(bArr);
        } catch (Throwable e) {
            throw e;
            }
}


public static final Object fetch(String address) throws MalformedURLException,IOException {
    URL url = new URL(address);
    Object content = url.getContent();
    return content;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试时,我支持代理

readURL(" http://abc.com ")

访问URL http://abc.com它会抛出java.net.UnknownHostException:我有:

<uses-permission android:name="android.permission.INTERNET" /> 
Run Code Online (Sandbox Code Playgroud)

在清单文件中.

快速解决方案吗?

java url android

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

我在这段代码上得到了一个StackOverFlowException,因为我的JVM不支持尾调用优化,对吧?

我得到了StackOverflowException这个Java方法:

private static final Integer[] populate(final Integer[] array, final int length, final int current) {

    if (current == length) {
        return array;
    } else {
        array[current] = TR.random.nextInt();
        System.out.println(array[current]);
        return populate(array, length, current + 1);
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在玩尾调用递归,所以我猜这是当JVM没有将堆栈短路时会发生什么?

java stack-overflow tail-recursion tail-call-optimization

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

如何在 Java 中分析线程?

我的应用程序中有生产者和消费者线程,我需要分析它们以查看线程的性能、每个线程进入睡眠和等待之前所花费的时间等,并采取纠正措施以提高应用程序的整体效率。

关于如何解决这个问题的任何建议?

java multithreading profiling

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

如何从Java中的Process运行中获取bash命令退出代码?

我有一个程序是:

import java.io.*;
   import java.util.*;

   public class ExecBashCommand {
     public static void main(String args[]) throws IOException {

       if (args.length <= 0) {
         System.err.println("Need command to run");
         System.exit(-1);
       }

       Runtime runtime = Runtime.getRuntime();
       Process process = runtime.exec("./nv0914 < nv0914.challenge");
       Process process1 = runtime.exec("echo ${?}");
       InputStream is = process1.getInputStream();
       InputStreamReader isr = new InputStreamReader(is);
       BufferedReader br = new BufferedReader(isr);
       String line;

       //System.out.printf("Output of running %s is:", Arrays.toString(args));

       while ((line = br.readLine()) != null) {
         System.out.println(line);
       }

     }
    } 
Run Code Online (Sandbox Code Playgroud)

注意:nv0914是一个bash可执行文件,nv0914.challenge是一个文本文件.当我在终端中运行任何正常命令时,如果我使用后检查退出代码echo ${?}.现在我想通过使用程序来做同样的事情,但程序只是提供输出 …

java unix bash runtime.exec exit-code

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

当我在 jvisualvm 中转储堆时,如何删除对 Runnable 的“Java Frame”GC Root 引用?

我用来jvisualvm检查应用程序中的内存泄漏。当我进行堆转储时,有时会出现几个本应被垃圾收集的对象处于打开状态。

当我对它们执行“显示最近的 GC Root”命令时,它显示根是我定义的一个类,它实现了 Runnable 接口。参考文献被列为(java frame),我知道这与线程有关。当我展开该节点的树时,它会打开并显示<no references>。因此,很明显,这不是我公开的参考资料,而是 Java 内部的东西。

jvisualvm 中列出的 GC Root 对象的类型AnalyticNode extends Node为Node implements Runnable。尽管使用了“框架”一词,但该根对象与 AWT、Swing 或任何重量级用户界面组件没有任何关系。在这种情况下,“框架”一词指的是线程。

那么,Java 是否会在某个地方保留对最后一个 Runnable 的引用,以使其保持打开状态?有什么方法可以告诉 Java 释放此引用,以便可以为我的堆转储正确收集它的垃圾吗?

这里发生了什么?

java garbage-collection memory-leaks jvisualvm

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

是否有一个包含所有标准操作的四元数和矩阵的库?

是否有一个java库可以处理所有标准操作的四元数和矩阵(四元数矩阵乘法)?

(我之前搜索谷歌和这里 - 但没有找到任何适当的解决方案)

java jar quaternions

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

如何在JTextField中对齐文本?

我有一个具有相当大边界的JTextField,但是文本的行为并不像我想要的那样.

 _________________
|                 |
|                 |
|text             |
|                 |
|_________________|
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能让我的文字像这样对齐

 _________________
|text             |
|                 |
|                 |
|                 |
|_________________|
Run Code Online (Sandbox Code Playgroud)

编辑:使用JTextArea修复我的问题.谢谢.

java swing alignment jtextfield

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