Как записать applescript в Snow Leopard?

Я сомневаюсь, что построение экземпляра Потока или подкласса этого пропускает память. Во-первых, нет ничего из видов, упомянутых в Javadocs или Спецификации языка Java. Во-вторых, я запустил простой тест, и он также показывает, что никакая память не пропущена (по крайней мере, не на JDK Sun 1.5.0_05 на 32-разрядном x86 Linux 2.6):

public final class Test {
  public static final void main(String[] params) throws Exception {
    final Runtime rt = Runtime.getRuntime();
    long i = 0;
    while(true) {
      new MyThread().run();
      i++;
      if ((i % 100) == 0) {
        System.out.println((i / 100) + ": " + (rt.freeMemory() / 1024 / 1024) + " " + (rt.totalMemory() / 1024 / 1024));
      }
    }
  }

  static class MyThread extends Thread {
    private final byte[] tmp = new byte[10 * 1024 * 1024];

    public void run() {
      System.out.print(".");
    }
  }
}

РЕДАКТИРОВАНИЕ: Только суммировать идею теста выше. Каждый экземпляр подкласса MyThread Потока ссылается на свой собственный массив на 10 МБ. Если бы экземпляры MyThread не были собраны "мусор", JVM исчерпала бы память довольно быстро. Однако выполнение тестового кода показывает, что JVM использует маленький постоянный объем памяти независимо от числа MyThreads, созданного до сих пор. Я утверждаю, что это вызвано тем, что экземпляры MyThread собраны "мусор".

5
задан TraderJoeChicago 9 October 2009 в 14:50
поделиться

1 ответ

Вы можете записывать только те приложения, которые предназначены для записи. Попробуйте записать некоторые действия в Finder, и он должен работать.

9
ответ дан 13 December 2019 в 19:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: